django 翻译不适合我

vik*_*tor 1 python django translation django-i18n

我无法强制 django 翻译字符串,从请求中选择的语言是正确的,但我没有翻译的字符串。

\n\n

也许这里可能有问题:当我运行 shell 时,返回的值language_code与我的不相等settings.py

\n\n
gettext = lambda s: s\nUSE_I18N = True\nUSE_L10N = True\nLANGUAGE_CODE = \'en\'\n\nLANGUAGES = (\n   (\'cs\', gettext(\'Czech\')),\n   (\'en\', gettext(\'English\')),\n)\n\n>>> from django.utils import translation\n>>> \n>>> translation.get_language()\n\'en-us\'\n>>> from django.conf import settings\n>>> settings.LANGUAGE_CODE\n\'en\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的消息文件位于locale/cs/LC_MESSAGES/django.{mo,po}\ni 中,其中包含以下内容(翻译后的周短名称缩写):

\n\n
msgid "Mo Tu We Th Fr Sa Su"\nmsgstr "Po \xc3\x9at St \xc4\x8ct P\xc3\xa1 So Ne"\n
Run Code Online (Sandbox Code Playgroud)\n\n

看来,当我得到正确的值“cs”时

\n\n
print get_language() \n\'cs\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

下一行是ugettext

\n\n
ugettext(\'Mo Tu We Th Fr Sa Su\')\n\'Mo Tu We Th Fr Sa Su\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我期待着

\n\n
\'Po \xc3\x9at St \xc4\x8ct P\xc3\xa1 So Ne\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

有人可以告诉我哪里可能有问题吗?:o)

\n

Thr*_*ran 7

翻译可能在.po文件中,但在文件中丢失.mo。尝试通过运行重新编译消息

./manage.py compilemessages 
Run Code Online (Sandbox Code Playgroud)