Skip to content

贡献翻译

我们欢迎社区成员帮助改进 Ghost Downloader 的多语言支持!如果你想为项目贡献新的翻译或更新现有翻译,请遵循以下步骤:

环境准备

你需要安装 Qt 官方提供的翻译工具:

  1. PySide6: 确保你已经按照 从源码构建 指南中的步骤安装了 PySide6 及其相关工具。pyside6-lupdatepyside6-lrelease 通常会随 PySide6 一起安装。
  2. 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 文件。

  1. 运行脚本 (Windows):

    bash
    # 在项目根目录下运行
    python sync_i18n_res.py

    这将更新 resources/i18n/ 目录下的 gd3.zh_CN.tsgd3.en_US.ts 文件。

  2. 运行脚本 (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 替换为你想要处理的目标语言代码。

  3. 添加新语言: 如果你想添加一种全新的语言(例如 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 文件相同的目录下。

提交贡献

  1. 将你修改或新增的 .ts 文件和生成的 .qm 文件添加到 Git 暂存区。
  2. 提交你的更改。
  3. 创建一个 Pull Request 到 Ghost Downloader 的主仓库。

感谢你为 Ghost Downloader 的国际化做出的贡献!