- Início
- Contribuir
Contribute to GolinksPRO Download Manager
Bug reports, ideas, and translation fixes are all welcome.
Preparar o ambiente
Você precisa do Windows 10 ou 11 e do Rust stable 1.95 ou posterior (a toolchain MSVC).
cargo build
cargo run -p mdm-app
Para testar as alterações sem afetar seus próprios downloads, dê ao aplicativo 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 arquivos gerados com qualquer problema que você solicitar (conexões lentas, cortes, respostas ocupadas, sem intervalos; GET / os lista), para que os downloads possam ser testados sem a internet.
Antes de abrir um pull request
Estas são as verificações que o CI executa; cada uma funciona em um 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 ao redor. Algumas regras valem em todos os lugares:
- 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 texto exibido para a pessoa usuária passa por
crate::i18n(t,tc,tn,fmt); depois de adicionar um, executepython tools/i18n/extract.py. Dados inseridos em uma frase (nome de arquivo, endereço, tamanho) devem passar pori18n::ltroui18n::isolate, para que sejam exibidos corretamente em idiomas escritos da direita para a esquerda. - Chamadas somente para Windows ficam em
crates/app/src/win32.rs, 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 é compilado para Linux e macOS. - Corrija as causas, não os casos, e mantenha produtores e consumidores de dados compartilhados (a lista de downloads, 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 aguarda 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 exclua sua linha
#, machine. - Mantenha
{placeholders}e o&(a letra do atalho de teclado) como estão.
Uma linha sem sua linha #, machine é sua a partir de então: tools/i18n/translate.py nunca mais a envia para tradução automática, e o CI (tools/i18n/reviewed_guard.py) rejeita qualquer pull request que a remova ou a marque #, machine novamente.
cargo test -p mdm-app every_catalogverifica cada catálogo. Para ver se seus textos se encaixam, defina MDM_FIT_AUDIT para um arquivo e tire as capturas de tela em seu idioma (tools\lab\docs-shots.ps1 ... -Lang <code>): todo texto que ultrapassa sua janela ou sobrepõe outro é listado lá. Consulte Idiomas para saber como a lista de idiomas, o instalador e o layout da direita para a esquerda se encaixam.
O site também está disponível em 21 idiomas, igualmente traduzidos automaticamente. Os textos ficam em i18n/site/<code>.json, com uma linha por frase: corrija a tradução de uma linha ("text") e mantenha as tags como <g1>…</g1> e <x2/> como estão, pois elas representam links 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.
Relatar 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.
Pull requests são aceitos sob a licença do projeto, a GNU GPL, versão 3 ou posterior.