10
在Django模板,究竟是这两者之间的区别:Django的国际化blocktrans VS反式
{% blocktrans %}My Text{% endblocktrans %}
{% trans 'My Text' %}
在Django模板,究竟是这两者之间的区别:Django的国际化blocktrans VS反式
{% blocktrans %}My Text{% endblocktrans %}
{% trans 'My Text' %}
跨模板标签
的{%反% } template标签翻译一个常量字符串(用单引号或双引号括起来)或可变内容:
使用Trans标签,您仅限于单个常量字符串或变量。所以,你将不得不使用
{# These Would Work! #}
title>{% trans "This is the title." %}</title>
<title>{% trans myvar %}</title>
但不能利用
{%trans "This is my title {{ myvar }}" %}
Blocktrans模板标签
相反的反式标签,在blocktrans标签允许您复杂的句子标记 由文字和可变内容组成,用于使用占位符进行翻译:
随着Blocktrans,这种代码是可能的:
{% blocktrans with book_t=book|title author_t=author|title %}
This is {{ book_t }} by {{ author_t }}
{% endblocktrans %}
所以Blocktrans将会让你更加复杂,并通过一个位在输出。
但是,从字面上回答你的问题:并不多。除了演示风格外,两者都会作为字符串发送给翻译人员'My Text'
完美。我认为对我来说,捕捉变量是如何在标签中处理的。我没有意识到trans标签不能混合变量和字符串。谢谢! – tzenderman
使用blocktrans的任何缺点? – dietbacon
没有。这完全是一个偏好问题。 – JcKelley