贡献翻译
我们欢迎社区成员帮助改进 Ghost Downloader 的多语言支持!如果你想为项目贡献新的翻译或更新现有翻译,请遵循以下步骤:
环境准备
你需要安装 Qt 官方提供的翻译工具:
- PySide6: 确保你已经按照 从源码构建 指南中的步骤安装了 PySide6 及其相关工具。
pyside6-lupdate
和pyside6-lrelease
通常会随 PySide6 一起安装。 - Qt Linguist: 这是一个图形化的翻译编辑工具,用于编辑
.ts
文件。你可以从 Qt 官网下载安装 Qt(选择 Tools -> Qt Linguist),或者通过你的包管理器安装(例如sudo apt install qt6-tools-dev-tools
on Debian/Ubuntu,brew install qt6
on macOS)。
更新翻译源文件 (.ts)
项目提供了一个脚本 sync_i18n_res.py
来自动从源代码 (app/
目录下的 .py
文件) 中提取需要翻译的文本,并更新或创建 .ts
文件。
运行脚本 (Windows):
bash# 在项目根目录下运行 python sync_i18n_res.py
这将更新
resources/i18n/
目录下的gd3.zh_CN.ts
和gd3.en_US.ts
文件。运行脚本 (macOS/Linux): 目前
sync_i18n_res.py
脚本在非 Windows 平台上不会自动执行pyside6-lupdate
命令。你需要手动执行:bash# 在项目根目录下运行 # 假设你要更新/创建 en_US 的翻译 pyside6-lupdate app/**/*.py -ts resources/i18n/gd3.en_US.ts -source-language zh_CN -target-language en_US -no-ui-lines
你需要将
app/**/*.py
替换为实际扫描的文件列表(脚本sync_i18n_res.py
会生成这个列表,你可以参考它的逻辑或手动指定),并将en_US
替换为你想要处理的目标语言代码。添加新语言: 如果你想添加一种全新的语言(例如
fr_FR
法语),你需要:- 修改
sync_i18n_res.py
脚本,在targetLanguages
列表中添加新的语言代码。 - 运行脚本(或手动执行
pyside6-lupdate
)来生成新的.ts
文件(如resources/i18n/gd3.fr_FR.ts
)。 - 在
app/common/config.py
(或类似文件) 中添加对新语言的支持(可能需要修改枚举或列表)。 - 在
Ghost-Downloader-3.py
中确保新语言的.qm
文件可以被正确加载。
- 修改
编辑翻译文件 (.ts)
使用 Qt Linguist 工具打开需要编辑的 .ts
文件(位于 resources/i18n/
目录下)。
- 逐条翻译源代码中的文本。
- 对于已翻译的条目,确保其准确性并根据需要进行更新。
- 完成后保存
.ts
文件。
生成二进制翻译文件 (.qm)
编辑并保存 .ts
文件后,你需要使用 pyside6-lrelease
工具将其编译成应用程序可以加载的二进制 .qm
文件。
bash
# 在项目根目录下运行
# 编译所有 .ts 文件
pyside6-lrelease resources/i18n/gd3.*.ts
# 或者编译单个文件
# pyside6-lrelease resources/i18n/gd3.en_US.ts -qm resources/i18n/gd3.en_US.qm
编译后的 .qm
文件会放在与 .ts
文件相同的目录下。
提交贡献
- 将你修改或新增的
.ts
文件和生成的.qm
文件添加到 Git 暂存区。 - 提交你的更改。
- 创建一个 Pull Request 到 Ghost Downloader 的主仓库。
感谢你为 Ghost Downloader 的国际化做出的贡献!