python - Django 翻译转义 % 符号

标签 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"

编译时无法将文本翻译成德语。我试过执行 {% trans "100%% butterfly"%},但这会导致页面在以德语和英语查看时显示“100%% butterfly”。我也尝试过使用 blocktrans 标签来翻译文本,结果相同。

手动删除 .po 文件中的额外 % 以及 #, fuzzy, python-format 行是可行的,但我宁愿不必为每个 % 符号都这样做我'我正在尝试翻译。

我如何在我的 HTML 中转义它,以便 Django 停止在 .po 文件中生成模糊翻译,并且不会因为我正在尝试进行一些 python 格式化而感到困惑?

最佳答案

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

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

# Translator: xgettext:no-python-format
_('100% butterfly')

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

{# Translators: xgettext:no-python-format #}
{% trans "100% butterfly" %}

作为explained in the doc .

关于python - Django 翻译转义 % 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33023122/

相关文章:

Python 就地排序并行数组?

Python 脚本给出 `: No such file or directory`

haskell - 在 Haskell 平台中进行区域设置的首选方法

java - Java 枚举的性能

ios - 在 iOS 中本地化字符串 : default (fallback) language?

python - 零填充numpy数组

python - 错误的 Word() 字符串给出了误导性的错误位置

python - 电子邮件不使用 django 1.9 发送

python - Django:序列化多个链接模型的列表

python - django 基本分页问题