请教jinja2 国际化的问题
import gettext
import jinja2,flask
app = Flask(__name__)
jjenv = jinja2.Environment(loader=jinja2.FileSystemLoader('templates'),extensions=['jinja2.ext.i18n'])
def set_lang(lang):
gettext.install('lang', './locale', unicode=False)
tr=gettext.translation('lang', './locale', languages=[lang])
tr.install(True)
#jjenv.install_null_translations(tr)
jjenv.install_gettext_translations(tr)
set_lang('cn')
print _("hello word")
以上代码没有问题 可以 翻译成汉语;但 用在模板时模板里代码如下
{{_('this is word')}}
**发生错误UndefinedError: '_' is undefined
请问这是什么情况啊?%trans%更不行了。求帮助**
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我这边的方案是用ini文件, 自己写个函数调就可以了, 简单明了, 没用到gettext.
你这个是配置的问题, 没有把_加到jinja的环境里
可以用这个: https://github.com/mrjoes/flask-babelex