处理Django blocktrans标签中的百分号(%) [英] Handling percent-sign (%) in Django blocktrans tags

查看:536
本文介绍了处理Django blocktrans标签中的百分号(%)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在本地化我的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆