开始设置
您需要 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
保持更改的重点,并与周围的代码保持一致。以下是一些普遍适用的规则:
- 洁净室。 MDM 不包含来自 Internet Download Manager 或任何其他下载管理器的代码、二进制文件、艺术作品、图标、声音或文本。切勿反汇编、反编译或修补其他程序,也切勿规避任何人的许可。请参阅不是逆向工程项目。
- 用户看到的所有文本都通过
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中)。 - 修正该行第三列的翻译,并删除其
#, machine行。 - 保持
{placeholders}和&(键盘快捷键字母)不变。
cargo test -p mdm-app every_catalog检查每个目录。要查看您的文本是否合适,请将MDM_FIT_AUDIT设置为文件,并用您的语言截取屏幕截图(tools\lab\docs-shots.ps1 ... -Lang <code>):所有超出窗口或覆盖其他窗口的文本都会在那里列出。有关语言列表、安装程序和从右到左布局如何协同工作,请参阅语言。
本网站也有20种语言版本,也是机器翻译的。其文本在i18n/site/<code>.json中,每行一句:修复一行的"text"(保持<g1>…</g1>和<x2/>等标签不变,它们是链接和图标)。python tools/website/translate_site.py
--status显示每种语言还缺少什么,而带有--langs <code>的相同工具只翻译这些。
报告问题
在应用程序中使用帮助 → 报告问题:它会打开错误报告表,其中已填写您的版本、系统、MDM 的安装方式及其语言。当您自己打开表单时,它也会要求提供相同的信息。安全问题:请参阅SECURITY.md。
拉取请求根据项目的许可,即GNU GPL,版本 3 或更高版本接受。