Django翻译即使使用了LOCALE_PATHS也无法工作

5

我正在使用 Django 1.8 创建一个新的网站,需要将其翻译成葡萄牙语。为此,我添加了如下中间件来使用 Django 的工具:

'django.middleware.locale.LocaleMiddleware',

我还添加了我的context_processors:

'django.template.context_processors.i18n',

我配置我的语言设置:

USE_I18N = True
gettext = lambda s: s
LANGUAGE_CODE = 'en'
LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)
print LOCALE_PATHS
LANGUAGES = (
    ('pt-br', gettext('Portuguese')),
    ('en', gettext('English')),
)

TIME_ZONE = 'America/Sao_Paulo'
USE_L10N = True
USE_TZ = True

我在文档顶部也导入了以下内容:

from django.utils.translation import ugettext as _

然后我添加了标签:
{% trans "text" %}

我在我的模板上放置了相应的文本。之后我运行了:

python manage.py makemessages -l pt-br

然后我翻译了我的.po文件中的所有内容,并最终使用以下方式编译:

python manage.py compilemessages

但是当我运行我的网站时,它仍然是英文的。 我的浏览器在pt-br上,并且我也有一个工作示例,但这个特定的网站没有被翻译。 我已经添加了i18n(国际化)的URL。

有人能帮帮我吗?我错过了什么?

1个回答

7

显然,Django需要将locale文件夹视为pt_br而不是pt-br,但设置必须是pt-br。对我来说这就是解决问题的方法。


1
我按照你说的将所有代码都保留为pt-br,但是使用了python manage.py makemessages -l pt_brpython manage.py compilemessages -l pt_br。它起作用了。谢谢! :) - reinaldoluckman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接