美文网首页
superset 中文版修改

superset 中文版修改

作者: 郭青耀 | 来源:发表于2020-12-05 23:57 被阅读0次

翻译

新版本的superset 0.31-0.38使用默认的镜像切换为中文后,菜单栏都翻译不全。但是在0.28版本是有翻译的,而且还可以找到翻译文件的位置superset/translations/zh/LC_MESSAGES,所以问题不是翻译文件缺失,而是少了翻译文件得到编译。
使用poedit软件打开对应翻译的po文件,编译成mo 文件,然后放入po所在的文件目录就可以了。

默认语言选择

源码的superset/config.py文件中

BABEL_DEFAULT_LOCALE = "en"
# Your application default translation path
BABEL_DEFAULT_FOLDER = "superset/translations"
# The allowed translation for you app
LANGUAGES = {
    "en": {"flag": "us", "name": "English"},
    "es": {"flag": "es", "name": "Spanish"},
    "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"},
    "pt": {"flag": "pt", "name": "Portuguese"},
    "pt_BR": {"flag": "br", "name": "Brazilian Portuguese"},
    "ru": {"flag": "ru", "name": "Russian"},
    "ko": {"flag": "kr", "name": "Korean"},
}

改为

BABEL_DEFAULT_LOCALE = "zh"
# Your application default translation path
BABEL_DEFAULT_FOLDER = "superset/translations"
# The allowed translation for you app
LANGUAGES = {
    "en": {"flag": "us", "name": "英语"},
    "es": {"flag": "es", "name": "西班牙语"},
    "it": {"flag": "it", "name": "意大利语"},
    "fr": {"flag": "fr", "name": "法语"},
    "zh": {"flag": "cn", "name": "中文"},
    "ja": {"flag": "jp", "name": "日文"},
    "de": {"flag": "de", "name": "德文"},
 #...
}

默认中文,不显示切换其他语言

后端修改

superset/templates/appbuilder/navbar_right.html
注释掉

{% if languages.keys()|length > 1 %}
<li class="dropdown">
    <a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
       <div class="f16"><i class="flag {{languages[locale].get('flag')}}"></i>&nbsp;<b class="caret"></b>
       </div>
    </a>
    <ul class="dropdown-menu" id="language-picker">
      <li class="dropdown">
        {% for lang in languages %}
            {% if lang != locale %}
                <a tabindex="-1" href="{{appbuilder.get_url_for_locale(lang)}}">
                  <div class="f16">
                    <i class="flag {{languages[lang].get('flag')}}"></i> - {{languages[lang].get('name')}}
                  </div>
                </a>
            {% endif %}
        {% endfor %}
      </li>
    </ul>
</li>
{% endif %}

前端修改

superset-frontend/src/components/Menu/Menu.jsx
注释掉

          {g_navbar_right.show_language_picker && (
            <LanguagePicker
              locale={g_navbar_right.locale}
              languages={g_navbar_right.languages}
            />
          )}

PS
以上给的路径都是基于源码的路径。https://github.com/apache/incubator-superset.git

相关文章

网友评论

      本文标题:superset 中文版修改

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