在Django模板中,这两者之间究竟有什么区别:
{% blocktrans %}My Text{% endblocktrans %}
{% trans 'My Text' %}
答案 0 :(得分:14)
Trans模板标记
{%trans%}模板标记转换为常量字符串(用单引号或>双引号括起来)或变量内容:
使用Trans标记,您只能使用单个常量字符串或变量。所以你必须使用
{# These Would Work! #}
title>{% trans "This is the title." %}</title>
<title>{% trans myvar %}</title>
但无法使用
{%trans "This is my title {{ myvar }}" %}
Blocktrans模板标记
与trans标签相反,blocktrans标签允许您标记复杂的句子 由文字和可变内容组成,通过使用占位符进行翻译:
使用Blocktrans,这种代码是可能的:
{% blocktrans with book_t=book|title author_t=author|title %}
This is {{ book_t }} by {{ author_t }}
{% endblocktrans %}
所以Blocktrans会让你在输出中变得更加复杂。
但要从字面上回答你的问题:不多。除了演示样式外,两者都将作为字符串'My Text'