Django没有加载正确的语言环境文件

时间:2016-04-26 15:32:32

标签: django internationalization django-1.8

我遇到Django加载正确翻译(.po / .mo)文件的问题。

我知道我的翻译工作正常,因为当我将LANGUAGE_CODE更改为' fr'我可以看到我的字符串翻译过了。

LANGUAGE_CODE = 'nl'

LANGUAGES = (
    ('nl', 'Nederlands'),
    ('fr', 'Frans'),
)

LOCALE_PATHS = [
    os.path.join(BASE_DIR, 'locale'),
]

TIME_ZONE = 'UTC'

USE_I18N = True

但是当我设置我的翻译以使用i18n_patterns中的urls.py时,我访问的时候没有加载我的法语(fr)翻译:{{1​​}}它仍会加载荷兰语(nl)值。

有趣的是,当我访问127.0.0.1:8000/fr/about/时,我可以看到它加载了法语管理员值,当我访问127.0.0.1:8000/fr/admin/时,它会加载荷兰语...我必须做错事。

urls.py

127.0.0.1:8000/nl/admin/

1 个答案:

答案 0 :(得分:1)

您需要在models.py和forms.py中使用import ugettext_lazy as _,而不是常规ugettextugettext将在导入期间评估翻译,此时除了使用默认语言之外别无选择; ugettext_lazy会在渲染时进行评估,此时它会提供正确的语言信息。