在我的models.py
文件中,我在这样的模型上定义了一个字段:
description = models.CharField(
max_length=40,
default=_('Bla bla bla'),
)
现在,_
为django.utils.translation.ugettext
,我希望将'Bla bla bla'
的希伯来语翻译用作'בלה בלה בלה'
的默认值。 (该网站仅限希伯来语。)字符串在消息文件中正确翻译。但是当我运行Django管理员并创建一个新对象时,我在该字段上看到了英语'bla bla bla'
。我认为在编译models.py
模块时,英语是主动语言。我该如何解决这个问题并将其作为希伯来语?
我知道一个解决方案是放弃ugettext
并在Python模块中编写希伯来语,但我更愿意避免这种情况,以防止编码地狱。
答案 0 :(得分:1)
尝试ugettext_lazy
https://docs.djangoproject.com/en/1.3/topics/i18n/internationalization/#lazy-translation
始终在Django中使用延迟翻译 模型。
答案 1 :(得分:1)
ugettext只是将字符串标记为可翻译。它本身不会为您做任何翻译。您必须创建语言文件(.mo和.po),然后将LANGUAGE_CODE设置设置为匹配。有关详细信息,请阅读Django documentation on Internationalization and Localization。