- Главная
- Участие
Contribute to GolinksPRO Download Manager
Bug reports, ideas, and translation fixes are all welcome.
Начало работы
Вам нужны 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
Сосредоточьте изменения и согласуйте их с окружающим кодом. Несколько правил действуют везде:
- 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"). В Windowstools\dev\check-cross.ps1проверяет, что сборка для Linux и macOS по-прежнему работает. - Исправляйте причины, а не отдельные случаи, и синхронизируйте производителей и потребителей общих данных (список загрузок, сообщения расширения браузера, каталоги).
Переводы
Интерфейс доступен на всех языках, предлагаемых Windows 11. Каталоги в i18n/ были созданы машинным переводом, и каждая строка, помеченная #, machine, ждёт носителя языка:
- Откройте
i18n/<code>.tsv(коды находятся вi18n/languages.tsv). - Исправьте перевод в третьем столбце строки и удалите строку
#, 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 или новее.