- Home
- Contribuisci
Contribute to GolinksPRO Download Manager
Bug reports, ideas, and translation fixes are all welcome.
Configurazione
Hai bisogno di Windows 10 o 11 e Rust stable 1.95 o successivo (la toolchain MSVC).
cargo build
cargo run -p mdm-app
Per provare le modifiche senza toccare i tuoi download, assegna all'app una cartella dati separata:
set MDM_DATA_DIR=C:\some\empty\folder
cargo run -p mdm-app
cargo run -p mdm-labserver -- --faults "rate=2M"avvia un server di test locale che serve file generati con qualsiasi problema tu richieda (connessioni lente, interruzioni, risposte occupate, nessun intervallo; GET / li elenca), in modo che i download possano essere testati senza internet.
Prima di aprire una pull request
Questi sono i controlli eseguiti dalla CI; ognuno funziona su un clone pulito:
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
Mantieni le modifiche mirate e in linea con il codice circostante. Alcune regole valgono ovunque:
- 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.
- Ogni testo che l'utente vede passa attraverso
crate::i18n(t,tc,tn,fmt); dopo averne aggiunto uno, eseguipython tools/i18n/extract.py. I dati all'interno di una frase (un nome file, un indirizzo, una dimensione) passano attraversoi18n::ltroi18n::isolate, in modo che siano leggibili correttamente nelle lingue da destra a sinistra. - Le chiamate solo per Windows si trovano in
crates/app/src/win32.rs, le loro controparti per Linux e macOS inunix.rs; il resto dello spazio di lavoro è Rust sicuro e portatile (unsafe_code = "deny"). Su Windows,tools\dev\check-cross.ps1verifica che si compili ancora per Linux e macOS. - Correggi le cause, non i casi, e mantieni sincronizzati i produttori e i consumatori di dati condivisi (l'elenco dei download, i messaggi dell'estensione per browser, i cataloghi).
Traduzioni
L'interfaccia è in ogni lingua offerta da Windows 11. I cataloghi in i18n/ sono stati creati tramite traduzione automatica, e ogni riga contrassegnata #, machine attende un madrelingua:
- Apri
i18n/<code>.tsv(i codici sono ini18n/languages.tsv). - Correggi la traduzione nella terza colonna della riga ed elimina la sua riga
#, machine. - Mantieni
{placeholders}e la&(la lettera della scorciatoia da tastiera) così come sono.
Una riga senza la sua riga #, machine è tua da quel momento in poi: tools/i18n/translate.py non la invia più alla traduzione automatica e la CI (tools/i18n/reviewed_guard.py) rifiuta qualsiasi pull request che la elimini o la contrassegni di nuovo #, machine.
cargo test -p mdm-app every_catalogcontrolla ogni catalogo. Per vedere se i tuoi testi entrano, imposta MDM_FIT_AUDIT su un file e fai gli screenshot nella tua lingua (tools\lab\docs-shots.ps1 ... -Lang <code>): ogni testo che supera la sua finestra o un altro viene elencato lì. Vedi Lingue per come l'elenco delle lingue, il programma di installazione e il layout da destra a sinistra si combinano.
Anche il sito web è in 21 lingue, anch'esse tradotte automaticamente. I suoi testi sono in i18n/site/<code>.json, una riga per frase: correggi il campo "text" di una riga (lascia i tag come <g1>…</g1> e <x2/> così come sono: sono i collegamenti e le icone). python tools/website/translate_site.py
--status mostra ciò che manca ancora a ciascuna lingua, e lo stesso strumento con --langs <code> traduce solo quello.
Segnalazione di problemi
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.
Le pull request sono accettate sotto la licenza del progetto, la GNU GPL, versione 3 o successiva.