Django - 将HTML标记放在需要翻译的文本块中

时间:2017-01-31 15:49:04

标签: django translation

我正在将我的网站从英文翻译成俄文(使用Django 1.9)并多次筛选doc,我仍然无法解决问题

我的模板中有以下代码段:

{% blocktrans %}
     I have <strong>{{apple_count}}</strong> apples
{% endblocktrans %}

运行makemessages后,我的.po文件如下所示:

msgid "I have <strong>%(apple_count)d</strong> apples"
msgstr "У меня есть %(apple_count)d яблок"

问题是在运行compilemessages命令后,该短语在俄语版本的网站中保留为英语(换句话说,该短语未翻译成俄语)。请注意,问题出在<strong>标记中。如果我从模板中删除它,一切正常。 我还试图从.po自动生成的msgid中删除<strong>,以便.po文件能够这样:

msgid "I have %(apple_count)d apples"
msgstr "У меня есть %(apple_count)d яблок"

......但这也无济于事。

Django是否提供了在翻译短语中包含HTML标签的方法?如果没有,最干净的解决办法是什么?

1 个答案:

答案 0 :(得分:0)

  

Django是否提供了在翻译短语中包含HTML标签的方法?如果没有,最干净的解决办法是什么?

这样做的方式与你做的完全一样。偶尔在blocktrans块内加一些标记是完全没问题的。

我不知道为什么它不适用于你的<strong>标签。我在我的django游乐场测试了它,即使包含标记也能完美地工作。问题必须是别的。

这就是gettext documentation对此的说法:

  然而,

HTML标记很常见,可以使用它   可翻译的字符串。但请记住GNU gettext   工具不会验证翻译是否格式正确。

相关问题