12

在 Django 模板中,这两者之间究竟有什么区别:

{% blocktrans %}My Text{% endblocktrans %}

{% trans 'My Text' %}
4

1 回答 1

16

来自Django 文档

反模板标签

{% 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'

于 2013-07-12T18:38:47.623 回答