我不能强制django翻译字符串,从请求中选择语言是正确的,但我没有翻译的字符串。
也许这里可能有问题:当我运行shell时,返回language_code
与我在settings.py
gettext = lambda s: s
USE_I18N = True
USE_L10N = True
LANGUAGE_CODE = 'en'
LANGUAGES = (
('cs', gettext('Czech')),
('en', gettext('English')),
)
>>> from django.utils import translation
>>>
>>> translation.get_language()
'en-us'
>>> from django.conf import settings
>>> settings.LANGUAGE_CODE
'en'
我的消息文件位于locale/cs/LC_MESSAGES/django.{mo,po}
我在那里有这个内容(翻译了一周短名称):
msgid "Mo Tu We Th Fr Sa Su"
msgstr "Po Út St Čt Pá So Ne"
在视野中,当我得到正确的值'cs'
print get_language()
'cs'
,下一行是ugettext
ugettext('Mo Tu We Th Fr Sa Su')
'Mo Tu We Th Fr Sa Su'
但我期待
'Po Út St Čt Pá So Ne'
有人能告诉我哪里可能有问题吗? :O)
答案 0 :(得分:3)
翻译可能在.po
文件中,但在.mo
文件中缺失。尝试运行
./manage.py compilemessages
答案 1 :(得分:0)
我整夜跟踪代码,发现了一些线索。主要在trans_real.py和gettext.py中。你可以在"翻译"中加入一个断点。功能