如何在jinja中添加i18n扩展名?

时间:2019-11-22 06:26:14

标签: python jinja2 gettext

根据this document,我编写了以下代码

from jinja2 import Template, Environment
from gettext import GNUTranslations

translation = GNUTranslations()
env = Environment(extensions=['jinja2.ext.i18n'])
env.install_gettext_translations(translation)
name = input("Enter your name: ")
tm = Template("{% trans %} Hello {{ name }} {% endtrans %}")
msg = tm.render(name=name)
print(msg)

但是,我得到一个错误

jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'trans'.

1 个答案:

答案 0 :(得分:0)

我想是因为您实例化了一个新的Template()对象。 默认情况下,它不使用您先前定义的环境,而是一个临时环境。 查看Jinja2类Template()的源代码,您将获得更多信息。

您需要的是类似template = env.get_template('index.html')然后是template.render(name=name)