如何在django翻译中保留内联链接?

时间:2012-12-31 18:02:01

标签: python django

我已经成功安装了Django的翻译系统,但已经遇到了一个看似设计缺陷的问题(希望我错了)。

这样很容易创建翻译块

<p>{% trans "The rain in Spain falls mainly on the plain" %}</p>

但在某些情况下,我只希望句子的一部分成为链接或具有不同的格式。

<p>The rain in <a href="...">Spain</a> falls <strong>mainly</strong> on the plain</p>

我意识到,我可以在这些标签中创建翻译块

<p>
  {% trans "The rain in " %}
  <a href="...">{% trans "Spain" %}</a>
  {% trans " falls mainly " %}
  <strong>{% trans "on the plain" %}</strong>
</p>

但这不仅会使翻译人员感到恼火,而且还会强制使用目标语言无法保证的词序。

我看过像https://github.com/mbi/django-rosetta这样更强大的翻译解决方案 但我在文档中没有看到任何关于它的内容。我可以在这里使用一些HTML技巧吗?

1 个答案:

答案 0 :(得分:3)

使用blocktrans

<p>
  {% blocktrans %}
  The rain in <a href="...">Spain</a>
  falls mainly <strong>on the plain</strong>
  {% endblocktrans %}
</p>

它允许比简单trans更复杂的内容,它通常只能用于标准文本。请注意blocktrans代码中的reverse url lookups are not supported,因此您必须在输入blocktransas shown in this answer之前将网址保存到变量中。