Flask flask-babel插件实现国际化

项目背景:

web项目中,无论是给端上API还是服务API,往往都会设置统一格式返回,全局异常拦截等等功能。 统一格式例如

{
    "code": 100010,
    "message": "tenant is not exist",
    "data": ""
}

国际化主要针对的是messages参数实现多语言化,下面我们将手把手的实现这个功能。

网上的坑

主要是随着包的升级出现的不兼容问题。

flask国际化实现是通过插件flask-babel包,flask-babel包从2.0.0 到3.0.0大版本升级

去掉了localeselector方法

优化成了在初始化Babel的时候传入select_locale参数

如果你使用的最新的flask-babel,

# 设置语言选择逻辑
@babel.localeselector
def get_locale():
    # 从 URL 参数获取语言选择,如果没有提供则使用浏览器默认语言
    return request.args.get('lang', request.accept_languages.best_match(app.config['LANGUAGES']))

 上面方法localeselector方法提示不存在。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值