Repository navigation
Conversation
- runCommand/runCommandSilent: traduce el texto de tellraw, title, say, msg, tell y w. - Mensajes armados por partes (variable que acaba en tell), sus miembros name y sus tablas de nombres, incluso si la tabla está en otro archivo. - Logros y funciones .mcfunction de kubejs/data, con copia de seguridad y en el kit para servidores.
… informar de lo que queda - Funciones, logros y tips se buscan por su estructura (data/<espacio>/function(s)...) en cualquier carpeta, sueltos o dentro de .zip, con copia de seguridad. - Componentes de texto en JSON y en SNBT (1.21.5+). - notify, kick y los títulos de menús de KubeJS, tomados de su código. - Más ▸ Qué queda en inglés y `modpackes cobertura`: frases de scripts sin elegir y texto escrito en el código de los mods (tabla de constantes de cada clase). Solo lee. - Pruebas con modpacks públicos de Modrinth y con la instancia propia: validez, idempotencia y restauración byte a byte.
…secciones - Memoria: cierra la conexión si el archivo está dañado y el proceso dice cuál es. - NBT: un gzip dañado o truncado se convierte siempre en ValueError. - Carpeta de recursos: rechaza rutas que salen de su raíz. - Resource pack: un espacio de nombres imposible o reservado de Windows se salta y se avisa, en vez de cancelar toda la traducción (mods y libros). - options.txt: conserva los bytes que no son UTF-8. - Pruebas de casos límite por sección, línea de comandos real y ventana.
… mods - Módulo TextoDeJava: traduce las frases del código Java a una tabla del resource pack. - Mod de cliente ModpackES Runtime (Forge 1.20.1) que cambia chat, barra de acción y tooltips cuyo texto es idéntico al de la tabla; con pruebas JUnit. - Instalar y quitar el mod desde la ventana y con `instalar-runtime`; opción --java. - scripts/construir_mod.py y paso de CI para compilarlo; el .exe lo incluye.
…ustivo y más corpus - Métodos de texto de KubeJS según la versión de Minecraft (formatos/kubejs_api.py). - El informe de cobertura avisa de carpetas con frases cuyo formato no se conoce. - Formato del mercado de Farming for Blockheads. - Modo exhaustivo opcional para los scripts (--exhaustivo y casilla). - Siete modpacks más en el corpus, de 1.16.5 a 26.x con Quilt incluido.
…uestran texto - Analiza las funciones del script cuyo parámetro solo se muestra (directo, partido en líneas o dentro de una plantilla que se muestra) y traduce lo que se les pasa en esa posición. - Conservador: si el parámetro se compara, busca, guarda, devuelve o va en un id o comando, o la función se usa como valor o está repetida, no se toca nada. - Las cadenas del escáner de JavaScript guardan la posición de su argumento.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b93c013adb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…omprobar el mod - El mod reconoce frases con datos (%s, %d) como plantillas; se descartan las traducciones que cambian el orden de los datos o pierden alguno. - El informe de lo que queda en inglés se ve por categorías, se guarda en un archivo y se escribe como JSON con `cobertura --json`. - Más ▸ Comprobar el mod de apoyo informa de su estado sin abrir el juego.
- Nuevo proyecto mod-runtime/neoforge-1.21.1 (ModDevGradle, Java 21) con la misma tabla y plantillas que el de Forge; comprobado en el código de NeoForge el evento de chat (ClientChatReceivedEvent, System y overlay) y el de tooltips. - La app lo reconoce como compatible con NeoForge 1.21.1 y lo instala o quita de mods/. - scripts/construir_mod.py compila cada proyecto con su Java y su Gradle, y puede usar un archivo de hosts solo para Java si el DNS del equipo falla con algunos servidores. - El CI instala Java 17 y 21 y compila los dos mods con sus pruebas.
Tercer loader del mod de apoyo (client-only): mensajes del juego con ClientReceiveMessageEvents.MODIFY_GAME, tooltips con ItemTooltipCallback y la tabla se recarga con un SimpleSynchronousResourceReloadListener. Misma lógica de tabla y plantillas que Forge y NeoForge, con sus 21 pruebas JUnit. Se compila con Loom 1.17 y Java 21 (la 1.19 pide Java 25), a bytecode de Java 17. La app lo instala en instancias Fabric 1.20.1; el script de construcción, el CI y la documentación lo incluyen.
… tooltips sin objeto Al abrir una pantalla cambia el texto de sus botones, casillas y etiquetas (ScreenEvent.Init.Post en Forge y NeoForge, ScreenEvents.AFTER_INIT en Fabric). En Forge y NeoForge también cambia los tooltips que no son de objetos con RenderTooltipEvent.GatherComponents. Fabric API no tiene evento para eso. El texto que una pantalla dibuja directamente no pasa por ningún evento y no se toca sin Mixin; la documentación lo dice. Las funciones nuevas de Reescritor llevan pruebas JUnit en los tres mods (23 en cada uno).
…glés Un script que le pasa a runCommand un comando de otro mod (p. ej. `emberstextapi queue` o `/eta queue`) con una frase en inglés ya no pasa en silencio: el informe «Qué queda en inglés» lo lista en una categoría nueva, «comando». La app no conoce el formato de esos comandos y no los toca, porque su texto va mezclado con etiquetas propias del mod. Se detecta por comandos que no son de chat con cinco o más palabras y dos o más palabras de enlace del inglés. Con los 20 modpacks del corpus y FC4 solo salta en stormforge, que usa ese mod; no hay falsos positivos.
…on datos del servidor El filtro miraba la ruta del .zip y no lo que lleva dentro, así que un datapack comprimido en global_packs con logros o funciones traducidos no entraba en el kit. Ahora un .zip cuenta por sus entradas (los que solo traen tips siguen fuera, porque son de cliente).
…1 y 1.21.4 Cuatro combinaciones más de las más jugadas (por modpacks y descargas en Modrinth): Forge 1.19.2, Fabric 1.19.4, Fabric 1.21.1 y Fabric 1.21.4. Cada una con su gancho de chat, tooltips y botones leído del código real de su versión, y 23 pruebas JUnit. La lógica común sale de las copias: `mod-runtime/comun/` guarda la tabla y tres variantes del reescritor según cómo guarda el texto cada versión (literal, plano desde 1.20.3 y sin texto de reserva en 1.19.2). Fabric 1.19.2 no puede tener mod: Fabric API no trae un evento de chat del cliente en esa versión. La app lo dice con ese motivo en vez de «todavía no».
… de versiones vecinas Fabric 1.21.5 (válido de 1.21.5 a 1.21.10) y Fabric 1.21.11, que renombra ResourceLocation a Identifier. Con esto Fabric queda cubierto sin huecos de 1.21 a 1.21.11, más 1.19.4 y de 1.20 a 1.20.2. Un mismo jar sirve para varias versiones cuando el mismo código compila y pasa sus pruebas contra cada una: `construir_mod.py --propiedad` lo comprueba sin generar jar, y el rango comprobado queda en `minecraft_range` de cada proyecto y en `SOPORTADOS`. El código compilado sigue sin probarse dentro del juego.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Qué cambia
Tras traducir Farming Crossing 4, parte del chat seguía en inglés: diálogos de NPC, avisos de colección, mensajes de antojos, logros y tips. La app solo buscaba texto en sitios fijos. Este PR hace que traduzca todo lo traducible en cualquier modpack, y que avise de lo que no puede.
.mcfunction, logros, tips y el mercado de Farming for Blockheads, enkubejs/data,global_packs,datapacks, mundos y zips. Componentes en JSON y SNBT (1.21.5+).tellraw/title/sayenrunCommand, mensajes armados por partes, métodos de texto según la versión (comprobados en el código de KubeJS 1.12 a 26.x) y funciones propias del script que solo muestran texto (solo en la posición de ese parámetro; si el parámetro se compara, se guarda, va en un id o comando, no se toca nada).--exhaustivoy casilla).modpackes cobertura): frases de scripts, formatos desconocidos y texto escrito en el código de los mods. Solo lee.mod-runtime/): muestra en español el texto del código Java de los mods (chat, barra de acción, tooltips) si es idéntico a uno de la tabla que genera la app. Opcional, apagado por defecto; se instala y quita desde la ventana o conmodpackes instalar-runtime. El CI lo compila con Java 17 y el.exelo incluye.options.txt.Cómo se probó
scripts/verificar.pycompleto: ruff, pyright estricto, compilación y 642 pruebas pasadas (6 saltadas por falta de datos o de jars descargables).node --check) siguen siendo válidos, repetir no cambia nada y restaurar devuelve los bytes originales..exese construye y su prueba de arranque pasa./tellraw @s "TPA request expired!"debe salir en español. Las pruebas usan el simulador de traducción, no la API real.Para quien revise
scripts/descargar_corpus.pysuma modpacks al corpus (se baja a.descargas/, ignorado por Git).Lista
uv run python scripts/verificar.pypasa completo.CHANGELOG.mdsi el usuario lo nota.