- Startseite
- Mitwirken
Contribute to GolinksPRO Download Manager
Bug reports, ideas, and translation fixes are all welcome.
Einrichtung
Sie benötigen Windows 10 oder 11 und Rust stable 1.95 oder neuer (die MSVC-Toolchain).
cargo build
cargo run -p mdm-app
Um Änderungen auszuprobieren, ohne Ihre eigenen Downloads zu beeinflussen, geben Sie der App einen separaten Datenordner mit:
set MDM_DATA_DIR=C:\some\empty\folder
cargo run -p mdm-app
cargo run -p mdm-labserver -- --faults "rate=2M"startet einen lokalen Testserver, der generierte Dateien mit den von Ihnen gewünschten Problemen (langsame Verbindungen, Unterbrechungen, ausgelastete Antworten, keine Bereiche; GET / listet sie auf) bereitstellt, sodass Downloads ohne Internet getestet werden können.
Bevor Sie einen Pull-Request öffnen
Dies sind die Prüfungen, die CI durchführt; jede funktioniert auf einem sauberen Klon:
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
Halten Sie Änderungen fokussiert und passen Sie sie dem umgebenden Code an. Einige Regeln gelten überall:
- 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.
- Jeder Text, den Nutzer sehen, läuft über
crate::i18n(t,tc,tn,fmt); führen Sie nach dem Hinzufügen eines Textespython tools/i18n/extract.pyaus. Daten innerhalb eines Satzes (ein Dateiname, eine Adresse, eine Größe) werden überi18n::ltroderi18n::isolateeingefügt, damit sie in Sprachen mit Schreibrichtung von rechts nach links richtig angezeigt werden. - Aufrufe, die nur unter Windows verfügbar sind, befinden sich in
crates/app/src/win32.rs, die entsprechenden Aufrufe für Linux und macOS inunix.rs; der Rest des Arbeitsbereichs besteht aus sicherem, portablem Rust (unsafe_code = "deny"). Unter Windows prüfttools\dev\check-cross.ps1, ob sich das Projekt weiterhin für Linux und macOS kompilieren lässt. - Ursachen statt Einzelfälle beheben und dafür sorgen, dass Erzeuger und Nutzer gemeinsamer Daten (die Download-Liste, die Nachrichten der Browser-Erweiterung, die Kataloge) aufeinander abgestimmt sind.
Übersetzungen
Die Oberfläche ist in allen Sprachen verfügbar, die Windows 11 anbietet. Die Kataloge in i18n/ wurden maschinell übersetzt, und jede mit #, machine markierte Zeile wartet auf die Prüfung durch Muttersprachlerinnen und Muttersprachler:
- Öffnen Sie
i18n/<code>.tsv(die Codes finden Sie ini18n/languages.tsv). - Korrigieren Sie die Übersetzung in der dritten Spalte der Zeile und löschen Sie die
#, machine-Zeile. - Behalten Sie
{placeholders}und das einzelne&(den Buchstaben für die Tastenkombination) unverändert bei.
Eine Zeile ohne ihre #, machine-Zeile gehört von da an Ihnen: tools/i18n/translate.py schickt sie nie wieder zur maschinellen Übersetzung, und CI (tools/i18n/reviewed_guard.py) lässt jeden Pull-Request fehlschlagen, der sie löscht oder erneut als #, machine markiert.
cargo test -p mdm-app every_catalogprüft jeden Katalog. Um zu sehen, ob Ihre Texte passen, setzen Sie MDM_FIT_AUDIT auf eine Datei und erstellen Sie die Screenshots in Ihrer Sprache (tools\lab\docs-shots.ps1 ... -Lang <code>): Dort wird jeder Text aufgelistet, der über sein Fenster oder über ein anderes Fenster hinausragt. Unter Sprachen erfahren Sie, wie Sprachliste, Installer und Layout für Sprachen mit Schreibrichtung von rechts nach links zusammenspielen.
Die Website ist ebenfalls in 21 Sprachen verfügbar und wurde auch maschinell übersetzt. Ihre Texte stehen in i18n/site/<code>.json, eine Zeile pro Satz: Korrigieren Sie die "text" einer Zeile (lassen Sie Tags wie <g1>…</g1> und <x2/> unverändert; sie stehen für Links und Symbole). python tools/website/translate_site.py
--status zeigt, was in den einzelnen Sprachen noch fehlt. Dasselbe Tool übersetzt mit --langs <code> nur diese fehlenden Texte.
Probleme melden
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.
Pull-Requests werden unter der Projektlizenz, der GNU GPL, Version 3 oder neuer, akzeptiert.