Préparation
Vous avez besoin de Windows 10 ou 11 et de Rust stable 1.95 ou ultérieur (la chaîne d'outils MSVC).
cargo build
cargo run -p mdm-app
Pour essayer des modifications sans toucher à vos propres téléchargements, donnez à l'application un dossier de données séparé :
set MDM_DATA_DIR=C:\some\empty\folder
cargo run -p mdm-app
cargo run -p mdm-labserver -- --faults "rate=2M"démarre un serveur de test local qui sert des fichiers générés avec les problèmes que vous demandez (connexions lentes, coupures, réponses occupées, pas de plages ; GET / les liste), afin que les téléchargements puissent être testés sans Internet.
Avant d'ouvrir une pull request
Voici les vérifications effectuées par l'intégration continue (CI) ; chacune fonctionne sur un clone propre :
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
Gardez les modifications ciblées et en accord avec le code environnant. Quelques règles s'appliquent partout :
- Environnement propre. MDM ne contient aucun code, binaire, illustration, icône, son ou texte d'Internet Download Manager ou de tout autre gestionnaire de téléchargement. Ne jamais désassembler, décompiler ou patcher un autre programme, et ne jamais contourner les licences de quiconque. Voir Pas un projet de rétro-ingénierie.
- Chaque texte que l'utilisateur voit passe par
crate::i18n(t,tc,tn,fmt) ; après en avoir ajouté un, exécutezpython tools/i18n/extract.py. Les données à l'intérieur d'une phrase (un nom de fichier, une adresse, une taille) passent pari18n::ltroui18n::isolate, afin qu'elles soient lues correctement dans les langues de droite à gauche. - Les appels spécifiques à Windows se trouvent dans
crates/app/src/win32.rs, leurs équivalents Linux et macOS dansunix.rs; le reste de l'espace de travail est du Rust sûr et portable (unsafe_code = "deny"). Sous Windows,tools\dev\check-cross.ps1vérifie qu'il se compile toujours pour Linux et macOS. - Corrigez les causes, pas les cas, et maintenez la synchronisation entre les producteurs et les consommateurs de données partagées (la liste de téléchargements, les messages de l'extension de navigateur, les catalogues).
Traductions
L'interface est disponible dans toutes les langues proposées par Windows 11. Les catalogues dans i18n/ ont été créés par traduction automatique, et chaque ligne marquée #, machine attend un locuteur natif :
- Ouvrez
i18n/<code>.tsv(les codes sont dansi18n/languages.tsv). - Corrigez la traduction dans la troisième colonne de la ligne et supprimez sa ligne
#, machine. - Gardez
{placeholders}et le&(la lettre du raccourci clavier) tels quels.
cargo test -p mdm-app every_catalogvérifie chaque catalogue. Pour voir si vos textes s'adaptent, définissez MDM_FIT_AUDIT sur un fichier et prenez les captures d'écran dans votre langue (tools\lab\docs-shots.ps1 ... -Lang <code>) : chaque texte qui dépasse sa fenêtre ou en chevauche un autre y est listé. Voir Langues pour comprendre comment la liste des langues, l'installateur et la disposition de droite à gauche s'articulent.
Le site web est également disponible en 20 langues, aussi traduites automatiquement. Ses textes sont dans i18n/site/<code>.json, une ligne par phrase : corrigez le "text" d'une ligne (gardez les balises comme <g1>…</g1> et <x2/> telles quelles, ce sont les liens et les icônes). python tools/website/translate_site.py
--status montre ce qui manque encore à chaque langue, et le même outil avec --langs <code> ne traduit que cela.
Signaler des problèmes
Utilisez Aide → Signaler un problème dans l'application : cela ouvre le formulaire de rapport de bug avec votre version, votre système, la façon dont MDM a été installé et sa langue pré-remplis. Le formulaire demande les mêmes informations lorsque vous l'ouvrez vous-même. Problèmes de sécurité : voir SECURITY.md.
Les pull requests sont acceptées sous la licence du projet, la GNU GPL, version 3 ou ultérieure.