- Início
- Contribuir
Contribute to GolinksPRO Download Manager
Bug reports, ideas, and translation fixes are all welcome.
Configuração
É necessário ter o Windows 10 ou 11 e o 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 disponibiliza ficheiros gerados com os problemas que indicar (ligações lentas, interrupções, respostas de servidor ocupado, sem suporte para intervalos; GET / apresenta a lista), para que as transferências possam ser testadas sem ligação à 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. 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.
- Todo o texto apresentado ao utilizador passa por
crate::i18n(t,tc,tn,fmt); depois de adicionar um, executepython tools/i18n/extract.py. Os dados inseridos numa frase (um nome de ficheiro, um endereço, um tamanho) são adicionados através dei18n::ltroui18n::isolate, para que sejam apresentados corretamente em idiomas escritos da direita para a esquerda. - As chamadas específicas do Windows estão em
crates/app/src/win32.rse as respetivas versões para Linux e macOS emunix.rs; o resto do espaço de trabalho é escrito em Rust seguro e portátil (unsafe_code = "deny"). No Windows,tools\dev\check-cross.ps1verifica se o programa continua a compilar para Linux e macOS. - Corrija as causas, não os casos, e mantenha sincronizados os produtores e consumidores de dados partilhados (a lista de transferências, as mensagens da extensão do navegador e os catálogos).
Traduções
A interface está disponível em todos os idiomas que o Windows 11 oferece. Os catálogos em i18n/ foram traduzidos automaticamente, e cada linha marcada com #, machine aguarda a revisão de 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.
A partir daí, a linha sem a respetiva linha #, machine fica a seu cargo: tools/i18n/translate.py nunca mais a envia para tradução automática, e o CI (tools/i18n/reviewed_guard.py) rejeita qualquer pedido de integração que a elimine ou volte a marcá-la como #, machine.
cargo test -p mdm-app every_catalogverifica todos os catálogos. Para verificar se os seus textos cabem, defina MDM_FIT_AUDIT como um ficheiro e faça as capturas de ecrã no seu idioma (tools\lab\docs-shots.ps1 ... -Lang <code>): aí são listados todos os textos que ultrapassam os limites da respetiva janela ou se sobrepõem a outra janela. Consulte Languages para saber como se articulam a lista de idiomas, o instalador e a disposição da direita para a esquerda.
O site também está disponível em 21 idiomas e foi traduzido automaticamente. Os textos estão em i18n/site/<code>.json, uma linha por frase: corrija a tradução de uma linha ("text"), mantendo as etiquetas como <g1>…</g1> e <x2/> tal como estão, pois correspondem a ligações e ícones. python tools/website/translate_site.py
--status mostra o que ainda falta em cada idioma, e a mesma ferramenta com --langs <code> traduz apenas o que falta.
Comunicar problemas
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.
Os pedidos de integração são aceites ao abrigo da licença do projeto, a GNU GPL, versão 3 ou posterior.