我已经成功安装了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技巧吗?
答案 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,因此您必须在输入blocktrans
,as shown in this answer之前将网址保存到变量中。