在Django模板中,这两者之间到底有什么区别:
{{ var }}
和 {% block %}
?{% blocktrans %}My Text{% endblocktrans %}
{% trans 'My Text' %}
{{ var }}
和 {% block %}
?{% blocktrans %}My Text{% endblocktrans %}
{% trans 'My Text' %}
来自 Django 文档
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'
发送到翻译器。