我尝试将我的django网站翻译成另一种语言,但是python中的翻译并不起作用。但是使用trans标签在模板中进行翻译,可以按预期工作。
我已经尝试了ugettext
,gettext
,gettext_lazy
和ugettext_lazy
,并且每次都有原始的未翻译字符串。
我的资源全部采用utf-8编码,乌克兰语原文字符串
答案 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对象。