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 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 levert met de problemen die u aanvraagt (trage verbindingen, onderbrekingen, drukke antwoorden, geen bereiken; GET / toont ze), zodat downloads zonder internet kunnen worden getest.
Voordat u een pull-aanvraag opent
Dit zijn de controles die CI uitvoert; elk werkt 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 passend bij de omringende code. Enkele regels gelden overal:
- Clean room. MDM bevat geen code, binaire bestanden, artwork, pictogrammen, geluiden of tekst van Internet Download Manager of enige andere downloadmanager. Demonteren, decompliceren of patchen van een ander programma is verboden, evenals het omzeilen van licenties. Zie Geen reverse-engineering project.
- Elke tekst die de gebruiker ziet, gaat via
crate::i18n(t,tc,tn,fmt); na het toevoegen van een tekst, voert upython tools/i18n/extract.pyuit. Gegevens binnen een zin (een bestandsnaam, een adres, een grootte) gaan viai18n::ltrofi18n::isolate, zodat het correct wordt weergegeven in talen die van rechts naar links worden gelezen. - Windows-specifieke aanroepen staan in
crates/app/src/win32.rs, hun Linux- en macOS-tegenhangers inunix.rs; de rest van de werkruimte is veilige, draagbare Rust (unsafe_code = "deny"). Op Windows controleerttools\dev\check-cross.ps1of het nog steeds bouwt voor Linux en macOS. - Los oorzaken op, geen gevallen, en houd producenten en consumenten van gedeelde gegevens (de downloadlijst, de berichten van de browserextensie, de catalogi) synchroon.
Vertalingen
De interface is beschikbaar in elke taal die Windows 11 biedt. De catalogi in i18n/ zijn gemaakt met machinevertaling, en elke rij gemarkeerd met #, machine wacht op een moedertaalspreker:
- Open
i18n/<code>.tsv(de codes staan ini18n/languages.tsv). - Corrigeer de vertaling in de derde kolom van de rij en verwijder de
#, machine-regel. - Houd
{placeholders}en de&(de sneltoetsletter) zoals ze zijn.
cargo test -p mdm-app every_catalogcontroleert elke catalogus. Om te zien of uw teksten passen, stelt u MDM_FIT_AUDIT in op een bestand en maakt u de schermafbeeldingen in uw taal (tools\lab\docs-shots.ps1 ... -Lang <code>): elke tekst die buiten het venster of over een andere tekst loopt, wordt daar vermeld. Zie Talen voor hoe de talenlijst, het installatieprogramma en de rechts-naar-links-indeling samenkomen.
De website is ook in 20 talen, eveneens machinaal vertaald. De teksten staan in i18n/site/<code>.json, één regel per zin: pas de "text" van een regel aan (houd tags zoals <g1>…</g1> en <x2/> zoals ze zijn, dit zijn de links en pictogrammen). python tools/website/translate_site.py
--status toont wat elke taal nog mist, en dezelfde tool met --langs <code> vertaalt alleen dat.
Problemen melden
Gebruik Help → Een probleem melden in de app: dit opent het bugrapportformulier met uw versie, systeem, hoe MDM is geïnstalleerd en de taal ingevuld. Het formulier vraagt om hetzelfde wanneer u het zelf opent. Beveiligingsproblemen: zie SECURITY.md.
Pull-aanvragen worden geaccepteerd onder de projectlicentie, de GNU GPL, versie 3 of later.