Django翻译逃脱%标志

tay*_*den 9 python django internationalization django-i18n

我正在尝试翻译一些包含百分号的文本,如下所示:

{% trans "100% butterfly" %}

当我运行makemessages命令时,我在德语.po文件中得到以下输出:

#: .\appName\templates\appName\butterflies.html:54
#, fuzzy, python-format
#| msgid ""
#| "100% butterfly"
msgid ""
"100%% butterfly"
msgstr ""
"100% shmetterling"
Run Code Online (Sandbox Code Playgroud)

在编译时,无法将文本翻译为德语.我已经尝试过了{% trans "100%% butterfly" %},但是当用德语和英语查看时,这会导致页面显示"100 %% butterfly".我也尝试使用blocktrans标签来翻译文本,结果相同.

手动删除.po文件中的额外%,以及#, fuzzy, python-format行工作,但我宁愿不必为我正在尝试翻译的每个%符号执行此操作.

我如何在我的HTML中逃避这一点,以便Django停止在.po文件中生成模糊翻译,并且不会混淆思考我正在尝试做一些python格式化?

zzh*_*eng 6

根据Django's Trac 中的此注释,在要翻译的字符串上方添加翻译器注释以停用 python 格式可以修复/解决此问题。

如果要翻译的文本在您的 Python 代码中,请使用:

# Translator: xgettext:no-python-format
_('100% butterfly')
Run Code Online (Sandbox Code Playgroud)

对于trans模板标签,您可以尝试:

{# Translators: xgettext:no-python-format #}
{% trans "100% butterfly" %}
Run Code Online (Sandbox Code Playgroud)

文档中所述