Подтвердить что ты не робот

Django i18n blocktrans vs trans

В шаблонах Django в чем разница между этими двумя:

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

{% trans 'My Text' %}
4b9b3361

Ответ 1

От Django Docs

Тег Trans template

Тег шаблона {% 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'