Configuração
Precisa do Windows 10 ou 11 e do Rust estável 1.95 ou posterior (o conjunto de ferramentas MSVC).
cargo build
cargo run -p mdm-app
Para experimentar as alterações sem tocar nas suas próprias transferências, dê à aplicação uma pasta de dados separada:
set MDM_DATA_DIR=C:\some\empty\folder
cargo run -p mdm-app
cargo run -p mdm-labserver -- --faults "rate=2M"inicia um servidor de teste local que serve ficheiros gerados com qualquer problema que peça (ligações lentas, cortes, respostas ocupadas, sem intervalos; GET / lista-os), para que as transferências possam ser testadas sem a internet.
Antes de abrir um pedido de "pull"
Estas são as verificações que o CI executa; cada uma funciona num clone limpo:
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
Mantenha as alterações focadas e alinhadas com o código à sua volta. Algumas regras aplicam-se em todo o lado:
- "Clean room" (Sala limpa). O MDM não contém código, binários, arte, ícones, sons ou texto do Internet Download Manager ou de qualquer outro gestor de transferências. Nunca desmonte, descompile ou corrija outro programa, e nunca contorne o licenciamento de ninguém. Consulte Not a reverse-engineering project.
- Todo o texto que o utilizador vê passa por
crate::i18n(t,tc,tn,fmt); depois de adicionar um, executepython tools/i18n/extract.py. Os dados dentro de uma frase (um nome de ficheiro, um endereço, um tamanho) entram através dei18n::ltroui18n::isolate, para que sejam lidos corretamente em idiomas da direita para a esquerda. - As chamadas apenas para Windows estão em
crates/app/src/win32.rs, as suas contrapartes para Linux e macOS emunix.rs; o resto do espaço de trabalho é Rust seguro e portátil (unsafe_code = "deny"). No Windows,tools\dev\check-cross.ps1verifica se ainda compila para Linux e macOS. - Corrija as causas, não os casos, e mantenha os produtores e consumidores de dados partilhados (a lista de transferências, as mensagens da extensão do navegador, os catálogos) em sincronia.
Traduções
A interface está em todos os idiomas que o Windows 11 oferece. Os catálogos em i18n/ foram feitos por tradução automática, e cada linha marcada #, machine espera por um falante nativo:
- Abra
i18n/<code>.tsv(os códigos estão emi18n/languages.tsv). - Corrija a tradução na terceira coluna da linha e elimine a sua linha
#, machine. - Mantenha
{placeholders}e o&(a letra do atalho de teclado) como estão.
cargo test -p mdm-app every_catalogverifica todos os catálogos. Para ver se os seus textos se encaixam, defina MDM_FIT_AUDIT para um ficheiro e tire as capturas de ecrã no seu idioma (tools\lab\docs-shots.ps1 ... -Lang <code>): todos os textos que ultrapassam a sua janela ou sobrepõem-se a outro são listados lá. Consulte Languages para saber como a lista de idiomas, o instalador e o esquema da direita para a esquerda se encaixam.
O site também está em 21 idiomas, também traduzido automaticamente. Os seus textos estão em i18n/site/<code>.json, uma linha por frase: corrija o "text" de uma linha (mantenha as etiquetas como <g1>…</g1> e <x2/> como estão, são os links e ícones). python tools/website/translate_site.py
--status mostra o que cada idioma ainda não tem, e a mesma ferramenta com --langs <code> traduz apenas isso.
Comunicar problemas
Use Ajuda → Comunicar um problema na aplicação: abre o formulário de comunicação de erros com a sua versão, sistema, como o MDM foi instalado e o seu idioma preenchidos. O formulário pede o mesmo quando o abre você mesmo. Problemas de segurança: consulte SECURITY.md.
Os pedidos de "pull" são aceites sob a licença do projeto, a GNU GPL, versão 3 ou posterior.