【发布时间】:2016-01-06 12:12:10
【问题描述】:
我正在尝试翻译一些包含百分号的文本,如下所示:
{% 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%% 蝴蝶”。我也尝试使用 blocktrans 标签来翻译文本,结果相同。
手动擦除 .po 文件中多余的 % 以及 #, fuzzy, python-format 行是可行的,但我宁愿不必为我尝试翻译的每个 % 符号都这样做。
如何在我的 HTML 中转义它,以便 Django 停止在 .po 文件中生成模糊翻译,并且不会因为我正在尝试做一些 python 格式而感到困惑?
【问题讨论】:
-
看起来
{% trans "100% butterfly" %}可以解决问题,但可能会让翻译人员感到困惑。 -
您是否尝试在 msgstr 的 .po 文件中使用
"100%% shmetterling"? -
刚刚,是的。我得到“100%% shmetterling”作为呈现的 html 输出
-
有一个相关的票#24257,在即将发布的 Django 1.9 中修复。该票的创建者说他们使用 blocktrans 作为解决方法,但我看到你已经尝试过了。
标签: python django internationalization django-i18n