- 主页
- 贡献
Contribute to GolinksPRO Download Manager
Bug reports, ideas, and translation fixes are all welcome.
开始设置
您需要 Windows 10 或 11,以及 Rust 稳定版 1.95 或更高版本(MSVC 工具链)。
cargo build
cargo run -p mdm-app
如要在不影响自己的下载内容的情况下尝试更改,请为应用指定一个单独的数据文件夹:
set MDM_DATA_DIR=C:\some\empty\folder
cargo run -p mdm-app
cargo run -p mdm-labserver -- --faults "rate=2M"启动一个本地测试服务器,根据您指定的异常情况(连接速度慢、连接中断、响应繁忙、不支持分段请求;GET /列出了这些情况)提供生成的文件,这样无需连接互联网也能测试下载。
在您提交拉取请求之前
以下是 CI 执行的检查;每项检查都在干净的克隆版本上运行:
cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
python tools/i18n/extract.py # then: git diff --exit-code i18n/en.tsv
node tools/extension/test.mjs
更改应聚焦于具体问题,并与周围的代码风格保持一致。以下规则适用于所有地方:
- Clean room. GDM contains no code, binaries, artwork, icons, sounds or text from Internet Download Manager or any other download manager. Never disassemble, decompile or patch another program, and never bypass anyone's licensing. See Not a reverse-engineering project.
- 用户看到的所有文本都必须通过
crate::i18n(t、tc、tn、fmt);添加文本后,运行python tools/i18n/extract.py。句子中的数据(文件名、地址、大小)应通过i18n::ltr或i18n::isolate传入,以便在从右到左的语言中正确显示。 - 仅限 Windows 的调用放在
crates/app/src/win32.rs中,Linux 和 macOS 对应的调用放在unix.rs中;工作区的其余部分使用安全、可移植的 Rust(unsafe_code = "deny")。在 Windows 上,tools\dev\check-cross.ps1会检查是否仍能为 Linux 和 macOS 构建。 - 解决根本原因,而非个别问题,并确保共享数据(下载列表、浏览器扩展的消息、目录)的生成方和使用方保持同步。
翻译
界面支持 Windows 11 提供的所有语言。i18n/中的语言目录由机器翻译生成,每行标记为#, machine的内容都等待母语人士审校:
- 打开
i18n/<code>.tsv(语言代码见i18n/languages.tsv)。 - 修正该行第 3 列的翻译,并删除该行的
#, machine行。 - 保留
{placeholders}和唯一的&(键盘快捷键字母),不要更改。
删除某行的#, machine行后,该行就由您负责维护:tools/i18n/translate.py不会再对其进行机器翻译;CI(tools/i18n/reviewed_guard.py)会拒绝删除该行或再次将其标记为#, machine的拉取请求。
cargo test -p mdm-app every_catalog会检查每个语言目录。要检查文本是否合适,请将MDM_FIT_AUDIT设为文件,并使用您的语言截取屏幕截图(tools\lab\docs-shots.ps1 ... -Lang <code>):所有超出窗口边界或与其他窗口重叠的文本都会列出。有关语言列表、安装程序和从右到左布局之间的配合方式,请参阅语言。
本网站也提供 21 种语言版本,同样由机器翻译生成。网站文本位于i18n/site/<code>.json中,每行一句:修正每行的"text"(保留<g1>…</g1>和<x2/>等标签,它们代表链接和图标)。python tools/website/translate_site.py
--status会显示各语言还缺少哪些内容;使用同一工具并指定--langs <code>时,只会翻译这些内容。
报告问题
Use Help → Report a problem in the app: it opens the bug report form with your version, system, how GDM was installed and its language filled in. The form asks for the same when you open it yourself. Security problems: see SECURITY.md.
拉取请求须遵循项目的许可协议,即GNU GPL 第 3 版或更高版本。