python - 如何将 i18n 扩展添加到 jinja?
问题描述
根据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'.
解决方案
我想这是因为你实例化了一个 new Template() 对象。默认情况下,它不使用您之前定义的环境,而是使用临时环境。查看 Jinja2 类 Template() 的源代码,您将获得更多信息。
你需要的是更像template = env.get_template('index.html')
那时的东西template.render(name=name)
推荐阅读
- npm - 尝试使用 tailwind 构建一个简单的 webpack,出现未知单词错误
- apache-spark - 在 pyspark 中使用管道运算符后收集问题
- python - discord.py 重写删除作者信息
- node.js - 如何检查 AWS Lambda 和 Elasticbeanstalk 中的次要 Node.js 版本?
- c# - 如何使用 c# 套接字从外部网络计算机或同一网络内连接到我的本地服务器
- c - 哪个代码效率更高,额外的 If 语句或重复的函数
- angular - 如何根据下拉值在 Angular 表单中添加/删除或显示/隐藏文本框
- bash - 如果变量在另一个变量的范围内
- reactjs - 有没有办法通过外部组件或按钮折叠和展开 ReactJS Bootstrap Accordion?
- javascript - 组件未在按钮单击时更新,反应