Django: Как объединить перевод и постоянную строку в шаблоне - PullRequest
1 голос
/ 28 сентября 2011

Я бы хотел передать перевод с переменной в тег шаблона.Я пытаюсь сделать это так:

{% my_tag _("Entries for tag")|add:" '"|add:tag|add:"'" %}

Но это не работает.Есть ли решение?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2011

Возможно, одним из решений будет:

{% blocktrans with tag=tag %}
    <span>Entries for tag</span> '{{ tag }}'
{% endblocktrans %}

Но помещать HTML в переведенные строки - не лучшая идея.Что гораздо хуже, хотя предполагается, что вы можете просто объединить перевод английской строки с другой строкой и получить правильное предложение.Вы никогда не можете предполагать, что позиция {{ tag }} в предложении будет одинаковой на других языках.Некоторому языку, вероятно, понадобится перевод Lorem ipsum „%(tag)s” dolor sit.

Но, похоже, вы пытаетесь применить некоторые HTML динамически.Возможно, вы действительно хотите ugettext('Entries for tag %(tag)s') внутри my_tag и соответственно проанализировать его (скажем, найти %(tag)s и добавить вокруг него HTML).

0 голосов
/ 28 сентября 2011

Что не так с <span>{% my_tag _("Entries for tag") %} '{{tag}}'</span>

...