66
77[ PR: 29476] ( https://github.com/apache/superset/pull/29476 ) 这个提交中删除了大量的中文翻译,导致 Superset 的中文翻译质量大幅下降, 在这次提交后便没有人再对中文翻译进行维护。
88
9- 本项目基于 [ PR: 27922] ( https://github.com/apache/superset/pull/27922 ) 的最后一次中文翻译提交,为了方便维护翻译, 用 Python 构建了翻译脚本, 改变了汉化步骤, 先生成 messages.json, 再通过 json 生成 messages.po, 此过程修复了一些翻译文件无法正常生效的问题.
9+ 本项目基于 [ PR: 27922] ( https://github.com/apache/superset/pull/27922 ) 的最后一次中文翻译提交,为了方便维护翻译, 用 Python 构建了翻译脚本, 改变了汉化步骤, 先生成 messages.json, 再通过 json 生成 messages.po 和 messages.mo , 此过程修复了一些翻译文件无法正常生效的问题.
1010
11- ## 使用方法
11+ ## 部署
1212
1313### Docker 镜像
1414
2020docker pull lutinglt/superset-zh
2121```
2222
23+ 参考配置 docker-compose.yml
24+
25+ ``` yml
26+ services :
27+ superset :
28+ image : lutinglt/superset-zh
29+ container_name : superset
30+ hostname : superset
31+ restart : always
32+ ports :
33+ - 8080:8088
34+ environment :
35+ - TZ=Asia/Shanghai
36+ volumes :
37+ # sqlite 存储持久化
38+ - ./superset:~/.superset
39+ # 导入配置文件
40+ - ./superset_config.py:/app/pythonpath/superset_config.py
41+ ` ` `
42+
43+ 参考配置 superset_config.py
44+
45+ ` ` ` python
46+ SECRET_KEY = 'superset'
47+ SQLALCHEMY_DATABASE_URI = 'postgresql://superset:superset@postgres/superset'
48+ WTF_CSRF_ENABLED = False
49+ TALISMAN_ENABLED = False
50+ BABEL_DEFAULT_LOCALE = "zh"
51+ LANGUAGES = {
52+ " zh " : {"flag": "cn", "name": "简体中文"},
53+ " en " : {"flag": "us", "name": "English"},
54+ }
55+ ```
56+
2357#### 手动构建
2458
2559``` bash
@@ -36,35 +70,37 @@ docker build -t lutinglt/superset-zh .
3670
3771### 手动汉化
3872
39- 找到 Superset 安装目录下的 ` translations ` 目录, 找到 ` zh/LC_MESSAGES ` 目录, 直接将项目仓库里的 ` messages.json ` 和 ` messages.po ` 文件复制到 ` zh/LC_MESSAGES ` 目录下, 然后运行:
73+ 找到 Superset 安装目录下的 ` translations ` 目录, 找到 ` zh/LC_MESSAGES ` 目录
4074
41- ``` bash
42- # 替换成自己的安装目录下的 translations 目录
43- pybabel compile -d superset/translations
44- ```
75+ 下载最新版本的 ` messages.json ` 和 ` messages.mo ` 文件复制到 ` zh/LC_MESSAGES ` 目录下
4576
4677重启 Superset 查看汉化效果.
4778
48- > [ !IMPORTANT]
49- >
50- > config.py 里的 ` BABEL_DEFAULT_LOCALE ` 变量会影响标题栏的汉化, 默认为 ` en ` , 修改为 ` zh ` 重新编译即可.
51-
5279> [ !IMPORTANT]
5380>
5481> config.py 里的 ` LANGUAGES ` 变量为空会关闭语言选择框, 默认为空, 参考配置:
55-
56- ``` python
57- BABEL_DEFAULT_LOCALE = " zh"
58- LANGUAGES = {
59- " zh" : {" flag" : " cn" , " name" : " 简体中文" },
60- " en" : {" flag" : " us" , " name" : " English" },
61- }
62- ```
82+ >
83+ > ``` python
84+ > LANGUAGES = {
85+ > " zh" : {" flag" : " cn" , " name" : " 简体中文" },
86+ > " en" : {" flag" : " us" , " name" : " English" },
87+ > }
88+ > ```
6389
6490> [! NOTE ]
6591>
6692> superset_config.py 会覆盖 config.py 里的配置, 优先级更高.
6793
94+ > [! TIP ]
95+ >
96+ > config.py 里的 `BABEL_DEFAULT_LOCALE ` 变量可能会影响标题栏的汉化, 默认为 `en` , 如果标题栏没有汉化修改为 `zh` 下载最新的 `messages.po` 重新编译即可.
97+ >
98+ > ```python
99+ > # 替换成自己的安装目录下的 translations 目录
100+ > # 编译报错请无视
101+ > pybabel compile - d superset/ translations
102+ > ```
103+
68104> [! TIP ]
69105>
70106> Superset 2.1 .0 之后安装的默认安全选项更为严格, 部署后登录不上, 或无法启动推荐添加以下配置
@@ -76,21 +112,23 @@ LANGUAGES = {
76112> CONTENT_SECURITY_POLICY_WARNING = False # 关闭内容安全策略警告
77113> ```
78114
79- # # 脚本说明
115+ # # 脚本
80116
81- 脚本依赖 `babel` 和 `polib` 并基于 Python 3.12 构建, 其中使用了一些类型注解可能会影响兼容性, 如有报错请自行删除, Python >= 3.8 理论上都可以直接运行.
82-
83- ```bash
84- pip install babel polib
85- ```
117+ > [! IMPORTANT ]
118+ >
119+ > 脚本基于 Python 3.12 构建, 其中使用了一些类型注解可能会影响兼容性, 如有报错请自行删除, Python >= 3.8 理论上都可以直接运行, 安装依赖运行命令:
120+ >
121+ > ```bash
122+ > pip install - r requirements.txt
123+ > ```
86124
87125# ## `generate_locales.py`
88126
89127基于 Superset 项目下的 `superset/ translations/ messages.pot` 和 `superset/ translations/ zh/ LC_MESSAGES / messages.po` 生成最新的需要翻译的内容, 然后取本项目下 `messages.json` 已翻译的部分覆盖需要翻译的内容, 生成全部翻译条目(包含未翻译)和筛选出未翻译的条目的 json 文件, 进行手动校验翻译过程, 方便补充新翻译和修改已翻译内容, 具体查看脚本中的文档注释内容.
90128
91129# ## `generate_messages.py`
92130
93- 根据已经翻译的内容生成 Superset 前端需要的 ` messages.json ` 和 ` messages.po ` , 具体查看脚本中的文档注释内容.
131+ 根据已经翻译的内容生成 Superset 前端需要的 `messages.json` 和 `messages.mo ` , 具体查看脚本中的文档注释内容.
94132
95133# # 贡献
96134
0 commit comments