superset国际化

    xiaoxiao2021-03-25  129

    最近由于工作需要研究开源可视化项目superset,由于其国际化做不怎么好,故而记录下国际化的过程,本篇本着『授人以鱼不如授人以渔』的原则,只叙述国际化的过程及方法,不提供直接的国际化文件。

    为了方便讲解,我们假定superset安装目录为PYHTON_LIB=/usr/local/lib/python3.5/site-packages

    1、修改PYHTON_LIB/superset-0.17.1-py3.5.egg/superset/config.py文件

    注:如不是root用户,需要修改config.py的文件权限后,再进行修改。

    修改点如下:

    # --------------------------------------------------- # Babel config for translations # --------------------------------------------------- # Setup default language BABEL_DEFAULT_LOCALE = 'zh' # Your application default translation path BABEL_DEFAULT_FOLDER = 'babel/translations' # The allowed translation for you app LANGUAGES = { # 'en': {'flag': 'us', 'name': 'English'}, # 'fr': {'flag': 'fr', 'name': 'French'}, # 'es':{'flag': 'es', 'name': 'Spain'}, # 'it':{'flag': 'it', 'name': 'Italy'}, 'zh': {'flag': 'cn', 'name': 'Chinese'}, }

    说明:BABEL_DEFAULT_LOCALE设置默认的本地化环境

    LANGUAGES:国际化的语言种类,你可以把注释全放开,这样就可以根据不同的语言环进行本地化,若要只提供一种语言,那么就可以放开你要使用的语言,而把其它的语言注释掉。

    2、修改messages.po文件

    路径:PYHTON_LIB/superset-0.17.1-py3.5.egg/superset/translations/zh/LC_MESSAGES

    根据views.py视图中

    from flask_babel import gettext as __ from flask_babel import lazy_gettext as _ 可以判断出,只有"__"和"_"开头的才可以进行国际化,如 __("Import Dashboards")_("Column")然后到messages.po文件中找相应字符串,看是否已经国际化过,若没有,则在文件的尾部添加 msgid "Column" msgstr "列" msgid就是要国际化的字符串,而msgstr则是要翻译成的语言 3、编译messages.po文件为messages.mo 在终端中将目录切换到PYHTON_LIB/superset-0.17.1-py3.5.egg/superset/目录下,执行如下命令pybabel compile -d translations 注意:要对translations目录及其子目录有写入权限 4、重启superset即可。 ps:以上只是superset的国际化,但类似下面panel之类的汉化,必须要修改appbuilder的汉化目录才能生效,目录在PYHTON_LIB/flask_appbuilder/translations/zh。

    转载请注明原文地址: https://ju.6miu.com/read-14874.html

    最新回复(0)