Flask-Babel как использовать перевод в файле шаблона Jinja

в моем приложении колбы, в main.py файл, я определил:

from flaskext.babel import gettext
....
def somefun():
    return render_template('some.html', messages=messages)

в файле шаблона некоторые.HTML, я использовал:

<input type='text' name='keywords' value='{{ keywords|default('') }}' placeholder='{{ gettext('Search...') }}' />

Это дает ошибку:

<input type='text' name='keywords' value='{{ keywords|default('') }}' placeholder='{{ gettext('Search...') }}' />
UndefinedError: 'gettext' is undefined

как импортировать эту функцию для использования шаблона?

1 ответов


к сожалению, это вообще не документировано, но Flask-Babel прозрачно использует Jinja2 расширения с названием i18n. Это означает, что по умолчанию доступны следующие функции для выражений:gettext, ngettext и _.

также есть возможность использовать теги шаблонов:

{% trans %}foo{% endtrans%}

{% trans num %}
There is {{ num }} object.
{% pluralize %}
There are {{ num }} objects.
{% endtrans %}

и сообщить об ошибке о недостающих документах вот и ждут патчи;)