Налаштування
Вам потрібні Windows 10 або 11 та Rust stable 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"). На Windowstools\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 або новіша.