- Inicio
- Contribuir
Contribute to GolinksPRO Download Manager
Bug reports, ideas, and translation fixes are all welcome.
Configuración
Necesitas Windows 10 u 11 y Rust estable 1.95 o posterior (la cadena de herramientas MSVC).
cargo build
cargo run -p mdm-app
Para probar los cambios sin afectar tus propias descargas, asigna a la aplicación una carpeta de datos separada:
set MDM_DATA_DIR=C:\some\empty\folder
cargo run -p mdm-app
cargo run -p mdm-labserver -- --faults "rate=2M"inicia un servidor de pruebas local que sirve archivos generados con los problemas que elijas (conexiones lentas, cortes, respuestas de servidor ocupado, sin rangos; GET / los enumera), para que puedas probar las descargas sin conexión a internet.
Antes de abrir una solicitud de extracción
Estas son las comprobaciones que ejecuta CI; todas funcionan en una copia limpia del repositorio:
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
Limita los cambios a lo necesario y sigue el estilo del código que los rodea. Estas reglas se aplican en todas partes:
- 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 que ve el usuario debe pasar por
crate::i18n(t,tc,tn,fmt); después de añadir un texto, ejecutapython tools/i18n/extract.py. Los datos que aparecen dentro de una frase (un nombre de archivo, una dirección o un tamaño) deben introducirse mediantei18n::ltroi18n::isolatepara que se lean correctamente en los idiomas que se escriben de derecha a izquierda. - Las llamadas exclusivas de Windows van en
crates/app/src/win32.rs, y sus equivalentes para Linux y macOS, enunix.rs; el resto del espacio de trabajo usa Rust seguro y multiplataforma (unsafe_code = "deny"). En Windows,tools\dev\check-cross.ps1comprueba que el código siga compilándose para Linux y macOS. - Corrige las causas, no los casos, y mantén coordinados a quienes generan y usan los datos compartidos (la lista de descargas, los mensajes de la extensión del navegador y los catálogos).
Traducciones
La interfaz está disponible en todos los idiomas que ofrece Windows 11. Los catálogos de i18n/ se tradujeron automáticamente, y cada fila marcada con #, machine está pendiente de revisión por un hablante nativo:
- Abre
i18n/<code>.tsv(los códigos están eni18n/languages.tsv). - Corrige la traducción en la tercera columna de la fila y elimina su línea
#, machine. - Mantén
{placeholders}y la&(la letra del atajo de teclado) tal como están.
A partir de ese momento, la fila sin su línea #, machine queda a tu cargo: tools/i18n/translate.py no volverá a traducirla automáticamente, y CI (tools/i18n/reviewed_guard.py) rechazará cualquier solicitud de cambios que la elimine o vuelva a marcarla como #, machine.
cargo test -p mdm-app every_catalogcomprueba todos los catálogos. Para ver si tus textos encajan, establece MDM_FIT_AUDIT en un archivo y toma las capturas de pantalla en tu idioma (tools\lab\docs-shots.ps1 ... -Lang <code>): cada texto que se sale de su ventana o se superpone a otro se lista allí. Consulta Idiomas para saber cómo encajan la lista de idiomas, el instalador y el diseño de derecha a izquierda.
La web también está disponible en 21 idiomas y se ha traducido automáticamente. Sus textos están en i18n/site/<code>.json, con una fila por frase: corrige el "text" de una fila (mantén etiquetas como <g1>…</g1> y <x2/> tal como están; son los enlaces y los iconos). python tools/website/translate_site.py
--status muestra qué le falta a cada idioma, y la misma herramienta, con --langs <code>, traduce solo lo que falta.
Informar de 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.
Las solicitudes de cambios se aceptan según la licencia del proyecto: la GNU GPL, versión 3 o posterior.