- Accueil
- Contribuer
Contribute to GolinksPRO Download Manager
Bug reports, ideas, and translation fixes are all welcome.
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, utilisez un dossier de données distinct pour l’application :
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 demande de fusion
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 :
- 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.
- Tous les textes affichés à l’utilisateur passent par
crate::i18n(t,tc,tn,fmt) ; après en avoir ajouté un, lancezpython tools/i18n/extract.py. Les données intégrées à une phrase (nom de fichier, adresse, taille) passent pari18n::ltroui18n::isolate, pour s’afficher correctement dans les langues qui s’écrivent de droite à gauche. - Les appels propres à Windows se trouvent dans
crates/app/src/win32.rs, et leurs équivalents pour Linux et macOS dansunix.rs; le reste de l’espace de travail utilise un Rust sûr et portable (unsafe_code = "deny"). Sous Windows,tools\dev\check-cross.ps1vérifie que le projet se compile toujours pour Linux et macOS. - Corrigez les causes, pas seulement les cas, et veillez à ce que les producteurs et les consommateurs de données partagées (la liste des téléchargements, les messages de l’extension de navigateur, les catalogues) restent synchronisés.
Traductions
L’interface est disponible dans toutes les langues proposées par Windows 11. Les catalogues de i18n/ ont été traduits automatiquement, et chaque ligne marquée #, machine attend une révision par 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.
Une fois la ligne #, machine supprimée, vous en êtes responsable : tools/i18n/translate.py ne la soumettra plus jamais à la traduction automatique, et la CI (tools/i18n/reviewed_guard.py) rejette toute demande de fusion qui la supprime ou la marque à nouveau #, machine.
cargo test -p mdm-app every_catalogvérifie chaque catalogue. Pour vérifier que vos textes tiennent dans l’interface, définissez MDM_FIT_AUDIT sur un fichier et prenez des captures d’écran dans votre langue (tools\lab\docs-shots.ps1 ... -Lang <code>) : tous les textes qui dépassent de leur fenêtre ou empiètent sur une autre y sont répertoriés. Consultez Langues pour comprendre comment s’articulent la liste des langues, le programme d’installation et la mise en page de droite à gauche.
Le site web est lui aussi disponible en 21 langues et a également été traduit automatiquement. Ses textes se trouvent dans i18n/site/<code>.json, à raison d’une ligne par phrase : corrigez la "text" d’une ligne (conservez les balises comme <g1>…</g1> et <x2/> telles quelles ; elles correspondent aux liens et aux icônes). python tools/website/translate_site.py
--status indique ce qui manque encore dans chaque langue, et le même outil, utilisé avec --langs <code>, ne traduit que ces éléments.
Signaler des problèmes
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.
Les demandes de fusion sont acceptées sous la licence du projet : la GNU GPL, version 3 ou ultérieure.