之前只修改了superset中config.py的配置,发现其中只汉化了一小部分,但是其他未汉化部分中有一部分的汉化其实代码里做了,并未生效,于是在网上找了一圈,没有发现特别靠谱的方法,后来折腾了一下解决了。
首先superset使用的i18n是flask框架的flask_babel,基本思路是现根据 superset根目录\superset\translations 下的各种json文件以及babel.cfg的配置生成所有语言的pot文件,然后根据pot文件生成各个语言的po文件,再通过编译po文件生成mo文件(所使用的1.5.0版本中并未编译出mo文件,这是配置文件配置后只生效了前端直接调用部分的原因,因为前段是直接引用的json文件),mo文件生成后重启项目即可生效,但是根据网上教程里的生成pot语句执行后发现pot文件里基本都是空的,后来发现superset提供了相关脚本,具体操作如下:
1.直接执行 superset根目录\script\babel_update.sh 文件
2.在 superset根目录\superset\translations 目录下执行命令:pybabel compile -d .(注意最后的.)
3.重启superset,清理浏览器缓存,访问即可生效