12

Djangoテンプレートでは、これら2つの違いは正確には何ですか:

{% 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 に答える