我试图翻译一些包含百分号的文本,如下所示:
{% trans "100% butterfly" %}
运行makemessages命令时,在德语.po文件中得到以下输出:
#: .\appName\templates\appName\butterflies.html:54
#, fuzzy, python-format
#| msgid ""
#| "100% butterfly"
msgid ""
"100%% butterfly"
msgstr ""
"100% shmetterling"
在编译时,无法将文本翻译成德语。我试过做{% trans "100%% butterfly" %}
,但这会导致页面显示“100%%butterfly”,当以德语和英语查看时。我也尝试过用blocktrans标记来翻译文本,结果是一样的。在
手动删除.po文件中多余的%以及#, fuzzy, python-format
行是可行的,但我不想对我试图翻译的每个%符号都这样做。在
如何在我的HTML中转义这个,以便Django停止在.po文件中生成模糊翻译,并且不会因为我在尝试做一些python格式而感到困惑?在
原来这是一个Django问题,django1.9中可能会有一个修复。 解决方法之一是:
{% blocktrans with percent="%" %}100{{percent}} butterfly{% endblocktrans %}
它基本上包含了python格式,当您在trans-text中添加一个%符号时,它认为您正在尝试这样做。很冗长很烂,但很管用。
我认为更好的方法是使用html代码:
%
例如,这是处理django翻译的最优雅的方式。
根据Django的Trac中的this comment,在要翻译的字符串上方添加一个translator注释来停用python格式可以解决这个问题。
如果要翻译的文本在Python代码中,请使用:
对于
^{pr2}$trans
模板标记,您可以尝试:作为explained in the doc。
相关问题 更多 >
编程相关推荐