处理Django blocktrans标签中的百分号(%) [英] Handling percent-sign (%) in Django blocktrans tags
问题描述
我正在本地化我的Django应用程序。所有其他翻译工作正常,除了blocktrans标签内的百分号。
在我的模板中,我有 {%blocktrans%} Original%blocktrans {endblocktrans% }
。
django-admin makemessages
在django.po中生成:
#:templates / index.html:78
#,python-format
msgidOriginal %% blocktrans
msgstr
我将其更新为 msgstrTranslated %% blocktrans
,运行 django-admin compilemessages
,重新启动dev服务器并刷新页面,但我仍然看到原始%blocktrans
在输出。其他翻译显示正确。
为了参考, {%transOriginal%trans%}
也可以正常工作。在邮寄和翻译后,我有:
#:templates / index.html:72
msgidOriginal%trans
msgstr已翻译的%trans
/ p>
我必须使用blocktrans,因为我还需要将变量嵌入字符串。我正在使用Django 1.2.5。
我如何使用百分号表示块转换?
找不到问题的真正解决方案,所以我使用了一个解决方法:创建一个常量PERCENT_SIGN = u'%',并将其用作块转移块内的{{PERCENT_SIGN}}。
I'm currently localizing my Django app. All other translations work fine except percent-sign inside blocktrans tags.
In my template I have {% blocktrans %}Original % blocktrans{endblocktrans %}
.
django-admin makemessages
produces this in django.po:
#: templates/index.html:78
#, python-format
msgid "Original %% blocktrans"
msgstr ""
I update that to msgstr "Translated %% blocktrans"
, run django-admin compilemessages
, restart dev server and refresh the page, but I still see Original % blocktrans
in the output. Other translations are shown properly.
For reference, {% trans "Original % trans" %}
also works ok. After makemessages and translation I have:
#: templates/index.html:72
msgid "Original % trans"
msgstr "Translated % trans"
This works as expected - translated version is shown.
I must use blocktrans because I also need to embed variables to the strings. I'm using Django 1.2.5.
How can I make blocktrans work with percent-signs?
Couldn't find a real solution to the problem, so I used a workaround: create a constant PERCENT_SIGN = u'%' and use that as {{ PERCENT_SIGN }} inside blocktrans-blocks.
这篇关于处理Django blocktrans标签中的百分号(%)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!