Flask 国际化记录

当你的应用面向更多的用户时国际化是不可避免的一步,而在Flask中国际化主要依赖于Flask-Babel这个Python库实现,记录一下在Flask下面的国籍化过程

安装Flask-Babel

pip install flask-babel

设置Babel

Flask Application目录下创建babel.cfg, 内容如下:

[python: **.py]
[jinja2: **/templates/**.html]
extensions=jinja2.ext.autoescape,jinja2.ext.with_

根据该配置Babel会自动扫描配置文件所描述的文件,并将需要进行国际化处理的内容提取出来。

生成翻译模版.pot

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

翻译

根据.pot文件生成特定语言的国际化文件:

pybabel init -i messages.pot -d translations -l zh_CN

该操作会在当前目录下生成translations文件夹,并创建响应的message.po文件

编译翻译结果

使用如下命令将.po文件编译为.mo文件:

pybabel compile -d translations

如果无法生成mo文件,请删除.po文件中的 #fuzzy

更新翻译

当更新了.pot文件后,我们需要根据pot更新相应语言的.po文件,执行:

pybabel update -i messages.pot -d translations