如何在Django中维护同一语言的不同国家/地区版本?

Jor*_*zov 13 python django internationalization django-i18n

我想有几个不同的版本在Django相同的语言,定制不同的国家(例如locale/en,locale/en_CA,locale/en_US等).如果没有特定国家/地区的语言,我希望使用默认语言版本(locale/en)).

然后在设置文件为每个站点我指定LANGUAGE_CODELANGUAGES.

出于某种原因,即使我指定以下设置,locale/en_US仍然使用翻译:

LANGUAGE_CODE = 'en'
LANGUAGES = (
    ('en', ugettext('English')),
)
Run Code Online (Sandbox Code Playgroud)

虽然我明确指出语言代码应该是en(不是en-us).

我错过了什么吗?已经尝试在多个地方找到答案,包括Django文档.

Jor*_*zov 1

该问题的解决方法是将以下代码片段添加到您的settings.py文件中。

import locale
locale.locale_alias.pop('en', None)
Run Code Online (Sandbox Code Playgroud)

特别感谢 Venelin Stoykov,她能够研究 Pythonlocale模块的行为。