问题描述
||
我目前正在本地化Django应用。除blocktrans标记内的百分号外,其他所有翻译都可以正常工作。
在我的模板中,我有
{% blocktrans %}Original % blocktrans{endblocktrans %}
。
django-admin makemessages
在django.po中产生此结果:
#: templates/index.html:78
#,python-format
msgid \"Original %% blocktrans\"
msgstr \"\"
我将其更新为msgstr \"Translated %% blocktrans\"
,运行django-admin compilemessages
,重新启动dev server并刷新页面,但在输出中仍然看到Original % blocktrans
。其他翻译正确显示。
作为参考,ѭ6也可以。经过makemessages和翻译,我有:
#: templates/index.html:72
msgid \"Original % trans\"
msgstr \"Translated % trans\"
这按预期工作-显示了翻译版本。
我必须使用blocktrans,因为我还需要将变量嵌入到字符串中。我正在使用Django 1.2.5。
如何使Blocktrans使用百分号?
解决方法
查看这张票-这不是解决方案,但可以了解正在发生的事情
,无法找到真正的解决方案,所以我使用了一种解决方法:创建一个常量PERCENT_SIGN = u \'%\',并将其用作{{́PERCENT_SIGN}}在blocktrans-blocks中。
,已针对该特定问题打开了另一张票证,其中包含一个可修复此问题的补丁程序。希望它将在Django 1.4中修复。
https://code.djangoproject.com/ticket/16721