Django trans标签可以包含HTML标签吗?例如,我可以做{% trans "Hold <em><strong>Ctrl</strong></em>" %}吗?还是我必须要做{% trans "Hold" %} <em><strong>{% trans "Ctrl" %}</strong></em>"

最佳答案

我们可以在trans模板标签内包含HTML标签吗?

不,,我们不应该像在第一种方法trans中所做的那样在 {% trans "Hold <em><strong>Ctrl</strong></em>" %} 模板标签内包含HTML标签。这是错误的方法

docs:


<title>{% trans "This is the title." %}</title> # example 1

<title>{% trans "myvar" noop %}</title>  # example 2

解决方案-1:使用trans模板标记

除了将HTML代码放在trans标记内之外,您可以执行以下类似操作来获得所需的结果(尽管这不是推荐的方法)。
{% trans "Hold" %} <em><strong>{% trans "Ctrl" %}</strong></em> # using trans tag

解决方案2:使用 blocktrans 标签代替

更好的选择是使用blocktrans模板标记而不是trans标记来包含HTML标记。



然后,您可以执行以下操作:
{% blocktrans %}
Hold <em><strong>Ctrl</strong></em>
{% endblocktrans %}

10-08 18:37