You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flask Babel中配置下划线标签并替换已弃用Jinja2扩展?

Flask Babel 下划线标签(_{{ "text" }})配置方案

1. 修正babel.cfg配置

无需添加已弃用的jinja2.ext.autoescape,jinja2.ext.with_,改为指定jinja2国际化扩展:

[python: **.py]
[jinja2: **/templates/**.html]
extensions=jinja2.ext.i18n

这个扩展是jinja2原生支持国际化的必要组件,能识别模板中的_()或_{{ "text" }}语法。

2. 在Flask应用中绑定下划线函数

在应用初始化代码里,将Flask Babel的gettext函数注册为Jinja2环境的全局_函数:

from flask import Flask
from flask_babel import Babel, gettext

app = Flask(__name__)
# 配置Babel基础参数(示例)
app.config['BABEL_DEFAULT_LOCALE'] = 'en'
app.config['BABEL_TRANSLATION_DIRECTORIES'] = 'translations'

babel = Babel(app)
# 绑定下划线函数到Jinja环境
app.jinja_env.globals['_'] = gettext

3. 提取翻译文件

执行提取命令时确保指向正确的babel.cfg:

pybabel extract -F babel.cfg -o messages.pot .

这样配置后,模板中的_{{ "some text" }}就能被正常识别并提取到翻译文件中,同时不会出现扩展弃用的警告。

内容的提问来源于stack exchange,提问作者Thorben Dhaenens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:20:28