django翻译不起作用,但模板中的翻译有效

时间:2015-03-24 10:08:13

标签: python django internationalization translation gettext

我尝试将我的django网站翻译成另一种语言,但是python中的翻译并不起作用。但是使用trans标签在模板中进行翻译,可以按预期工作。

我已经尝试了ugettextgettextgettext_lazyugettext_lazy,并且每次都有原始的未翻译字符串。

我的资源全部采用utf-8编码,乌克兰语原文字符串

3 个答案:

答案 0 :(得分:0)

您想查看this

由于您没有发布代码,我认为它与别名有关。

使用

from django.utils.translation import ugettext_lazy as _

translated_string = _('original_string')

你不应该有问题

“您只能在Django中使用ugettext和ugettext_lazy(或任何其他相关翻译函数)的_别名,否则makemessages命令将无法识别它。技术说明可以在Robert Lujo's answer中找到。 “

答案 1 :(得分:0)

我认为问题在于你的MIDDLEWARE_CLASSES。问题是,有一些中间件可能会改变您的请求,包括语言前缀。特别是,当您使用AJAX调用查询额外的模板数据时,由ugettext,gettext等翻译。

答案 2 :(得分:0)

如果string包含非拉丁符号,则ugettext_lazy将不起作用。所以在我的情况下,原始字符串必须是Unicode对象。