处理Django blocktrans标记中的百分号(%)

ant*_*koo 6 django localization escaping

我目前正在本地化我的Django应用程序.所有其他翻译工作正常,除了blocktrans标签内的百分号.

在我的模板中,我有{% blocktrans %}Original % blocktrans{endblocktrans %}.

django-admin makemessages 在django.po中生成这个:

#: templates/index.html:78
#, python-format
msgid "Original %% blocktrans"
msgstr ""
Run Code Online (Sandbox Code Playgroud)

我更新msgstr "Translated %% blocktrans",运行django-admin compilemessages,重新启动开发服务器并刷新页面,但我仍然Original % blocktrans在输出中看到.其他翻译正确显示.

作为参考,{% trans "Original % trans" %}也可以.在makemessages和翻译之后,我有:

#: templates/index.html:72
msgid "Original % trans"
msgstr "Translated % trans"
Run Code Online (Sandbox Code Playgroud)

这按预期工作 - 显示翻译版本.

我必须使用blocktrans,因为我还需要将变量嵌入到字符串中.我正在使用Django 1.2.5.

如何使用百分号使块运行工作?

ant*_*koo 3

无法找到问题的真正解决方案,因此我使用了一种解决方法:创建一个常量 PERCENT_SIGN = u'%' 并将其用作 blocktrans-blocks 内的 {{\xc2\xa0PERCENT_SIGN }} 。

\n

  • 使用 html 实体怎么样?? (3认同)