【问题标题】:Django - putting HTML tags inside blocks of text subject to translationDjango - 将 HTML 标签放在需要翻译的文本块中
【发布时间】:2017-06-17 03:10:47
【问题描述】:

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

我的模板中有以下 sn-p:

{% 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 命令后,该短语在网站的俄语版本中仍保留为英文(换句话说,该短语未翻译成俄语)。请注意问题在于&lt;strong&gt; 标签。如果我从模板中删除它,一切正常。 我还尝试从 .po 自动生成的 msgid 中删除 &lt;strong&gt;,以便 .po 文件如下所示:

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

...但这也无济于事。

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

【问题讨论】:

    标签: django translation


    【解决方案1】:

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

    这样做的方法与您所做的完全一样。偶尔在 blocktrans 块中添加一些标记是完全可以的。

    我不知道为什么它不适用于您的 &lt;strong&gt; 标签。我在我的 django 操场上进行了测试,即使包含标记也能完美运行。问题一定是别的。

    gettext documentation 是这么说的:

    然而,HTML 标记很常见,它可能可以用于 可翻译的字符串。但请记住,GNU gettext 工具不会验证翻译是否为格式良好的 HTML。

    【讨论】:

      猜你喜欢
      • 2018-11-18
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 2013-04-08
      • 2019-07-16
      • 1970-01-01
      • 2015-11-11
      • 1970-01-01
      相关资源
      最近更新 更多