翻译
新版本的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> <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
网友评论