在网上搜了半天也没介绍flask-security汉化方法,于是查看源代码,发现里面是支持Babellex翻译,于是Git源代码,自己增加了中文简体的翻译文件,并提交到作者,不过还没审核通过,详见如何参与Github上的开源项目Flask-security语言翻译
由于需要在项目中使用,等到作者合并到项目中并发布,不知道什么时候,于是就自己编译之后放到项目中,记录一下方法给小伙伴参考。
编译好的语言包:https://download.csdn.net/download/gh254172840/10582647
接上面文章,将项目编译,生成mo文件,此时注意编译的文件如果是messages.po,messages.mo,请将他们改为flask_security.po,flask_security.mo,不然flask_security会检测不到
pybabel compile -d flask_security/translations/
现在需要把zh_Hans_CN整个文件夹复制到flask_security/translations/,即可。
注意不要更改文件名,不然会检测不到
接着请安装Flask-BabelEx
pip install Flask-BabelEx
配置BabelEx,这个在官方教程没写,可以参考flask-admin如何汉化。
# 初始化flask_babelex
from flask import app
from flask_babelex import Babel
app = Flask(__name__)
babel = Babel(app)
# 创建一个本地选择器:
@babel.localeselector
def get_locale():
if request.args.get('lang'):
session['lang'] = request.args.get('lang')
return session.get('lang', 'zh_CN')
重启服务,你就可以看到汉化效果了
效果如下:
Good Lucky!