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 prueba local que sirve archivos generados con los problemas que le pidas (conexiones lentas, cortes, respuestas ocupadas, sin rangos; GET / los enumera), para que las descargas puedan probarse sin internet.
Antes de abrir una solicitud de extracción
Estas son las comprobaciones que ejecuta CI; cada una funciona en un clon limpio:
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
Mantén los cambios enfocados y que coincidan con el código que los rodea. Algunas reglas se aplican en todas partes:
- Sala limpia. MDM no contiene código, binarios, ilustraciones, iconos, sonidos o texto de Internet Download Manager ni de ningún otro gestor de descargas. Nunca desensambles, descompiles o parches otro programa, y nunca eludas las licencias de nadie. Consulta No es un proyecto de ingeniería inversa.
- Todo el texto que ve el usuario pasa por
crate::i18n(t,tc,tn,fmt); después de añadir uno, ejecutapython tools/i18n/extract.py. Los datos dentro de una frase (un nombre de archivo, una dirección, un tamaño) se introducen a través dei18n::ltroi18n::isolate, para que se lean correctamente en idiomas de derecha a izquierda. - Las llamadas solo para Windows residen en
crates/app/src/win32.rs, sus equivalentes para Linux y macOS enunix.rs; el resto del espacio de trabajo es Rust seguro y portable (unsafe_code = "deny"). En Windows,tools\dev\check-cross.ps1comprueba que todavía se compila para Linux y macOS. - Corrige las causas, no los casos, y mantén sincronizados a los productores y consumidores de datos compartidos (la lista de descargas, los mensajes de la extensión del navegador, los catálogos).
Traducciones
La interfaz está en todos los idiomas que ofrece Windows 11. Los catálogos en i18n/ se hicieron con traducción automática, y cada fila marcada #, machine espera a 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.
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á en 20 idiomas, traducida automáticamente. Sus textos están en i18n/site/<code>.json, una fila por frase: corrige el "text" de una fila (mantén las etiquetas como <g1>…</g1> y <x2/> tal cual, son los enlaces e iconos). python tools/website/translate_site.py
--status muestra lo que le falta a cada idioma, y la misma herramienta con --langs <code> traduce solo eso.
Informar de problemas
Usa Ayuda → Informar de un problema en la aplicación: abre el formulario de informe de errores con tu versión, sistema, cómo se instaló MDM y su idioma ya rellenados. El formulario pide lo mismo cuando lo abres tú mismo. Problemas de seguridad: consulta SECURITY.md.
Las solicitudes de extracción se aceptan bajo la licencia del proyecto, la GNU GPL, versión 3 o posterior.