Перевести элементы из списка в шаблоне Jinja2 с помощью Flask-Babel - PullRequest
0 голосов
/ 04 июня 2018

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

{% set nav = [
    ('Foo', 'user.foo'),
    ('Bar', 'user.bar'),
] %}

Позже в шаблоне у меня есть цикл for:

{% for title, endpoint in nav %}
  {% if endpoint == request.endpoint %}
    <li class="active"><a href="{{ url_for(endpoint) }}">{{ title|title }}</a></li>
  {% else %}
    <li><a href="{{ url_for(endpoint) }}">{{ title|title }}</a></li>
  {% endif %}
{% endfor %}

Какя должен использовать {% trans%} или {{gettext ()}} в моем примере, чтобы правильно перевести пункты меню?Я попытался поместить {% trans%} в цикл for, но безуспешно.Есть ли способ перевести элементы списка, которые определены в шаблоне?

1 Ответ

0 голосов
/ 06 июня 2018

Просто переведите меню:

{% set nav = [
    (_('Foo'), 'user.foo'),
    (_('Bar'), 'user.bar'),
] %}

_(...) - это короткий псевдоним gettext(...).

В общем, вам следует перевести текст, где он определен, таквы меньше рискуете получить искаженный текст, поэтому пропускаете переводы.

...