我正在将我的网站从英文翻译成俄文(使用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标签的方法?如果没有,最干净的解决办法是什么?
答案 0 :(得分:0)
Django是否提供了在翻译短语中包含HTML标签的方法?如果没有,最干净的解决办法是什么?
这样做的方式与你做的完全一样。偶尔在blocktrans
块内加一些标记是完全没问题的。
我不知道为什么它不适用于你的<strong>
标签。我在我的django游乐场测试了它,即使包含标记也能完美地工作。问题必须是别的。
这就是gettext documentation对此的说法:
然而,HTML标记很常见,可以使用它 可翻译的字符串。但请记住GNU gettext 工具不会验证翻译是否格式正确。