1-2、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。
 
         

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM