- Home
- Bijdragen
Contribute to GolinksPRO Download Manager
Bug reports, ideas, and translation fixes are all welcome.
Instellen
U hebt Windows 10 of 11 en Rust stable 1.95 of nieuwer nodig (de MSVC-toolchain).
cargo build
cargo run -p mdm-app
Om wijzigingen uit te proberen zonder uw eigen downloads aan te raken, geeft u de app een aparte gegevensmap:
set MDM_DATA_DIR=C:\some\empty\folder
cargo run -p mdm-app
cargo run -p mdm-labserver -- --faults "rate=2M"start een lokale testserver die gegenereerde bestanden aanbiedt met de problemen die u opgeeft (trage verbindingen, onderbrekingen, drukke antwoorden, geen bereikondersteuning; GET / geeft een overzicht), zodat downloads zonder internet kunnen worden getest.
Voordat u een pull-aanvraag opent
Dit zijn de controles die CI uitvoert; ze werken allemaal op een schone kloon:
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
Houd wijzigingen gericht en laat ze aansluiten bij de omringende code. Enkele regels gelden overal:
- 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.
- Alle teksten die de gebruiker ziet, lopen via
crate::i18n(t,tc,tn,fmt); voer na het toevoegen van een tekstpython tools/i18n/extract.pyuit. Gegevens in een zin (een bestandsnaam, een adres, een grootte) worden ingevoegd viai18n::ltrofi18n::isolate, zodat de tekst ook in talen die van rechts naar links worden gelezen goed wordt weergegeven. - Windows-specifieke aanroepen staan in
crates/app/src/win32.rs, de tegenhangers voor Linux en macOS inunix.rs; de rest van de werkruimte bestaat uit veilige, draagbare Rust-code (unsafe_code = "deny"). Op Windows controleerttools\dev\check-cross.ps1of de code nog steeds voor Linux en macOS kan worden gebouwd. - Los de oorzaak op, niet alleen afzonderlijke gevallen, en zorg dat producenten en gebruikers van gedeelde gegevens (de downloadlijst, de berichten van de browserextensie, de catalogi) op elkaar afgestemd blijven.
Vertalingen
De interface is beschikbaar in alle talen die Windows 11 aanbiedt. De catalogi in i18n/ zijn met machinevertaling gemaakt. Elke rij met #, machine moet nog door een moedertaalspreker worden gecontroleerd:
- Open
i18n/<code>.tsv(de codes staan ini18n/languages.tsv). - Verbeter de vertaling in de derde kolom van de rij en verwijder de regel met
#, machine. - Laat
{placeholders}en de ene&(de letter voor de sneltoets) ongewijzigd.
Vanaf dat moment is een rij zonder de regel met #, machine door u vertaald: tools/i18n/translate.py stuurt die nooit meer naar de machinevertaling, en CI (tools/i18n/reviewed_guard.py) laat geen pull-aanvraag toe die de rij verwijdert of opnieuw als #, machine markeert.
cargo test -p mdm-app every_catalogcontroleert elke catalogus. Stel MDM_FIT_AUDIT in op een bestand en maak schermafbeeldingen in uw taal (tools\lab\docs-shots.ps1 ... -Lang <code>) om te zien of uw teksten passen: alle teksten die buiten hun venster vallen of over een ander venster heen lopen, worden vermeld. Zie Talen voor informatie over hoe de talenlijst, het installatieprogramma en de lay-out van rechts naar links op elkaar aansluiten.
Ook de website is beschikbaar in 21 talen en is met machinevertaling vertaald. De teksten staan in i18n/site/<code>.json, één zin per rij: verbeter de "text" van een rij (laat tags zoals <g1>…</g1> en <x2/> ongewijzigd; dit zijn de links en pictogrammen). python tools/website/translate_site.py
--status laat zien wat er in elke taal nog ontbreekt. Met dezelfde tool en --langs <code> wordt alleen dat vertaald.
Problemen 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-aanvragen worden geaccepteerd onder de projectlicentie: de GNU GPL, versie 3 of hoger.