2013-07-12 60 views

回答

13

Django Docs

跨模板标签

的{%反% } 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'

+0

完美。我认为对我来说,捕捉变量是如何在标签中处理的。我没有意识到trans标签不能混合变量和字符串。谢谢! – tzenderman

+0

使用blocktrans的任何缺点? – dietbacon

+0

没有。这完全是一个偏好问题。 – JcKelley