zoukankan      html  css  js  c++  java
  • 12、superset国际化

    最近由于工作需要研究开源可视化项目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。
    
    

     

     
     
  • 相关阅读:
    spring二级缓存的ehcache 的 配置文件
    C/C++联合(Union)浅谈
    C++技巧之名字空间namespace
    VC动态调用DLL的调试方法
    在C++中调用DLL中的函数
    VS编译debug模式静态库(lib)的结尾_d修改
    bash: chkconfig: command not found
    Linux在防火墙中开放SVN端口
    VIM选择文本块/复制/粘贴
    svnserve.conf:12: Option expected的问题解决方法[SVN]
  • 原文地址:https://www.cnblogs.com/netbloomy/p/6668332.html
Copyright © 2011-2022 走看看