2012-03-01 54 views
9

在我的瓶的應用程序,在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 

如何導入這個函數模板的使用?

回答

18

不幸的是,這並沒有記錄在案,但Flask-Babel透明地使用了Jinja2's i18n extension。這意味着默認情況下,表達式的以下函數可用:gettextngettext_

還有可能使用模板標籤:

{% trans %}foo{% endtrans%} 

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

,這就是等待補丁bug report about missing docs;)

+1

這不是真的,我不能使用「_」,沒有任何進口行爲。 – 2012-03-01 13:08:19

+0

@BrentJiang你是否真的啓動了Flask-Babel擴展? – plaes 2012-03-01 13:17:37

+0

@BrentJiang請參閱文檔,在**配置** – plaes 2012-03-01 13:26:45