2012-03-01 10 views
9

W mojej aplikacji kolbie w main.py akt I zdefiniowane:Kolba-Babel, jak korzystać z tłumaczenia w Jinja pliku szablonu

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

w pliku szablonu some.html użyłem:

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

To daje błąd:

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

Jak importować tę funkcję do użycia szablonów?

Odpowiedz

18

Niestety, nie jest to w ogóle udokumentowane, ale Flask-Babel jest przezroczysty z użyciem Jinja2's i18n extension. Oznacza to, że domyślnie dostępne są następujące funkcje dla wyrażeń: gettext, ngettext i _.

Istnieje również możliwość korzystania z tagów szablonu:

{% trans %}foo{% endtrans%} 

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

A bug report about missing docs że czeka na plastry;)

+1

to nie jest prawda, nie mogę używać „_” bez jakichkolwiek działań importujących. –

+0

@BrentJiang Czy faktycznie zainicjowałeś rozszerzenie Flask-Babel? – plaes

+0

@BrentJiang Zobacz dokumentację, pod ** Konfiguracja ** – plaes

Powiązane problemy