我目前正在本地化我的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
,重新启动开发服务器并刷新页面,但我仍然在输出中看到Original % blocktrans
。其他翻译正确显示。
作为参考,{% trans "Original % trans" %}
也可以。在makemessages和翻译后我有:
#: templates/index.html:72
msgid "Original % trans"
msgstr "Translated % trans"
这可以按预期工作 - 显示翻译版本。
我必须使用blocktrans因为我还需要将变量嵌入到字符串中。我正在使用Django 1.2.5。
如何使用百分号制作块转换?
答案 0 :(得分:3)
查看this ticket - 这不是一个解决方案,但它揭示了正在发生的事情
答案 1 :(得分:2)
找不到问题的真正解决方案,所以我使用了一种解决方法:创建一个常量PERCENT_SIGN = u'%'并在blocktrans-blocks中将其用作{{PERCENT_SIGN}}。
答案 2 :(得分:2)
已针对此特定问题打开了另一张故障单,并附带修补程序。希望它能为Django 1.4修复。