В шаблонах Django, что именно разница между этими двумя:Django i18n blocktrans против транс
{% blocktrans %}My Text{% endblocktrans %}
{% trans 'My Text' %}
В шаблонах Django, что именно разница между этими двумя:Django i18n blocktrans против транс
{% blocktrans %}My Text{% endblocktrans %}
{% trans 'My Text' %}
От Django Docs
Trans шаблонный тег
{% транс% } тег шаблона переводит либо константную строку (заключенную в одиночные или> двойные кавычки), либо содержимое переменной:
С тегом 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'
Perfect. Я думаю, что уловка для меня заключалась в том, как переменные обрабатываются в тегах. Я не понимал, что тэг trans не может смешивать переменные и строки. Благодаря! – tzenderman
любой недостаток для использования blocktrans для обоих? – dietbacon
Нет. Это чисто вопрос предпочтения. – JcKelley