Flask-Babel, как использовать перевод в шаблоне Jinja - PullRequest
9 голосов
/ 01 марта 2012

В моем приложении Flask в файле main.py я определил:

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

в файле шаблона some.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 Ответ

19 голосов
/ 01 марта 2012

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

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

{% trans %}foo{% endtrans%}

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

И сообщение об ошибке об отсутствующих документах , ожидающих исправлений;)

...