我相信使用jinja2與瓶一個簡單地使用jinja2_template而不是模板: 例如, bottle.jinja2_template(「MyTemplate的」,字典(名稱=值,2 =值2)) 但是,如果一個需要國際化延伸神社是如何最規定也做如何使用jinja2 i18n與瓶(與巴貝爾)
....install_gettext_translations(
?是否自動完成
bottle.jinja2_template("mytemplate", dict(name=value, name2=value2), template_lookup=['templates'],'template_settings'= {'extensions':['jinja2.ext.i18n'],'autoescape': True }))
?謝謝。
經過進一步反射,我想可能需要手動此改變在類Jinja2Template prepare方法來添加env.install_gettext_translations(???
更多信息,如果我在做.... install_gettext_translations(,也許是:
tenv = Environment(extensions=['jinja2.ext.i18n'])
tenv.install_gettext_translations(gettransobj())
import gettext
import locale
def gettransobj():
loc = locale.getlocale()
# change to reflect where your mo files are
mofilename = "res/messages_%s.mo" % locale.getdefaultlocale()[0][0:2]
try:
trans = gettext.GNUTranslations(open(mofilename, "rb"))
except IOError:
trans = gettext.NullTranslations()
return trans
OR爲巴貝爾翻譯OBJ像
..... install_gettext_translations(gettransobj(),newstyle = TRUE)
import babel
import locale
def gettransobj():
loc = locale.getlocale()
mofilename = "res/messages_%s.mo" % locale.getdefaultlocale()[0][0:2]
trans = babel.support.Translations(open(mofilename, "rb"))
如果這段代碼有點正確,不知道該把它放在哪裏?對jinja2不太熟悉。只需在程序頂端或bottle.jinja2_template調用一次。
在不同的音符,如果有人需要用巴貝爾做的提取,看到jinja2.ext.babel_extract
另一種方法就是設法讓反式OBJ的東西,如:
return gettext.translation(domain, localedir=localedir,languages=languages, codeset='utf-8')
您需要在答案中指定你不知道的東西。粘貼代碼只是沒有任何意義。 – Runcorn
謝謝兄弟!有效! – phedoreanu