美文网首页
superset 汉化(国际化 本地化)

superset 汉化(国际化 本地化)

作者: samsing | 来源:发表于2018-01-09 10:20 被阅读0次

    简介

    Superset的国际化是通过Flask-Babel中的lazy_gettext()和gettext()来实现的。有关的详细的介绍可以参考国际化和本地化,本文将不再赘述。在superset中,lazy_gettext()和gettext()分别用_来替代,如下图所示

    
    from flask_babelimport gettextas __
    
    from flask_babelimport lazy_gettextas _
    
    import pandasas pd
    
    import sqlalchemyas sqla
    
    from sqlalchemyimport create_engine
    
    from sqlalchemy.engine.urlimport make_url
    
    from unidecodeimport unidecode
    
    from werkzeug.routingimport BaseConverter
    
    from werkzeug.utilsimport secure_filename
    
    

    1、修改配置文件实现支持中文

    $SUPERSET_HOME/config.py #笔者练习时所用SUPERT_HOME=~/pythonProjects/incubator-superset/superset

    
    LANGUAGES = {
    
    'en': {'flag':'us', 'name':'English'},
    
        'it': {'flag':'it', 'name':'Italian'},
    
        'fr': {'flag':'fr', 'name':'French'},
    
        'zh': {'flag':'cn', 'name':'Chinese'},
    
        'ja': {'flag':'jp', 'name':'Japanese'},
    
        'de': {'flag':'de', 'name':'German'},
    
    }
    
    

    2、提取待翻译文本到messages.pot,并使用message.pot跟新messages.po

    
    cd $SUPERSET_HOME
    
    pybabel extract -F ./translations/babel.cfg -k _ -k __ -k t -k tn -k tct -o ./translations/messages.pot . 
    
    pybabel update -i ./translation/messages.pot -d ./translations/ -l zh
    
    # 第一次生成messages.po时使用如下命令
    
    #pybabel update -i ./translation/messages.pot -d ./translations/ -l zh
    
    

    在之前的版本中babel.cfg存在的路径是$SUPERSET_HOME/babel

    3、翻译新提取出的待翻译文本

    如下,新生成的po或po中因为更新添加的新词条的msgstr,即翻译文本是空白,需添加翻译文本

    
    msgid "Add Druid Cluster"
    
    msgstr ""
    
    msgid "Add Druid Datasource"
    
    msgstr ""
    
    msgid "Edit Druid Datasource"
    
    msgstr ""
    
    msgid "Show Druid Datasource"
    
    msgstr ""
    
    

    如下所示方式,添加需要汉化的文本

    
    msgid "Add Druid Cluster"
    
    msgstr "新增Druid集群"
    
    msgid "Add Druid Datasource"
    
    msgstr ""
    
    msgid "Edit Druid Datasource"
    
    msgstr ""
    
    msgid "Show Druid Datasource"
    
    msgstr ""
    
    

    4、编译messages.po文件为messages.mo

    $SUPERSET_HOME目录下,执行如下命令

    
    pybabel compile -d translations
    
    

    注意:要对translations目录及其子目录有写入权限

    5、转messages.po文件为messages.json

    
    npm install po2json -g 
    
    po2json -d superset -f jed1.x superset/translations/zh/LC_MESSAGES/messages.po superset/translations/zh/LC_MESSAGES/messages.json
    
    

    6、重启superset即可

    相关文章

      网友评论

          本文标题:superset 汉化(国际化 本地化)

          本文链接:https://www.haomeiwen.com/subject/xfrwnxtx.html