Как мне перевести вывод фильтра в Django - PullRequest
5 голосов
/ 19 августа 2010

У меня есть некоторый код шаблона, который выглядит следующим образом:

<input type='submit' value='{{ need.satisfied|yesno:"Resend this document now,Send this document now" }}' />

Я бы хотел перевести его, но это кажется трудным для выполнения.

http://code.djangoproject.com/ticket/3804 упоминает

{{ _("Some String") }} 

, который, кажется, работает для буквенных строк, но при использовании, как

{{ _(Variable) }} 

, выдает ошибку

Variables and attributes may not begin with underscores: '_'

Итак, как высделать это?

О да, я пытался сделать:

'{% if blah %}{% trans "Resend..." %}{% else %}{% trans "Send..." %}{% endif %}'

, что работает, но выглядеть так некрасиво, что не хочу.Конечно, с Django есть более элегантный способ сделать это .....

Похоже, что | trans фильтр был бы в порядке, но это было сбито как не проблема с http://code.djangoproject.com/ticket/3804

Ответы [ 2 ]

12 голосов
/ 19 августа 2010

Судя по примеру в документации, можно сделать это следующим образом:

<input type='submit' value='{{ need.satisfied|yesno:_("Resend this document now,Send this document now") }}' />

Источник: https://docs.djangoproject.com/en/1.11/topics/i18n/translation/#string-literals-passed-to-tags-and-filters

1 голос
/ 19 августа 2010

вы пытались использовать, blocktrans

{% blocktrans %}
    string to translate with {{ vars }}
{% endblocktrans %}
...