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. MDM non contiene codice, binari, grafica, icone, suoni o testo da Internet Download Manager o qualsiasi altro download manager. Non disassemblare, decompilare o patchare mai un altro programma, e non aggirare mai le licenze altrui. Vedi Non è un progetto di reverse-engineering.
- 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 del 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.
cargo test -p mdm-app every_catalogcontrolla ogni catalogo. Per vedere se i tuoi testi si adattano, 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, l'installatore e il layout da destra a sinistra si combinano.
Il sito web è disponibile in 20 lingue, anch'esso tradotto automaticamente. I suoi testi sono in i18n/site/<code>.json, una riga per frase: correggi la "text" di una riga (mantieni i tag come <g1>…</g1> e <x2/> così come sono, sono i link e le icone). python tools/website/translate_site.py
--status mostra ciò che manca ancora a ogni lingua, e lo stesso strumento con --langs <code> traduce solo quello.
Segnalazione di problemi
Usa Guida → Segnala un problema nell'app: apre il modulo di segnalazione bug con la tua versione, il sistema, come MDM è stato installato e la sua lingua già compilati. Il modulo chiede le stesse informazioni quando lo apri tu stesso. Problemi di sicurezza: vedi SECURITY.md.
Le pull request sono accettate sotto la licenza del progetto, la GNU GPL, versione 3 o successiva.