Traducir
El launcher y el TRS Client hablan ocho idiomas. El inglés es la fuente y la reserva: si falta un texto, se muestra el inglés.
| Idioma | Launcher y TRS Client | Web y documentación |
|---|---|---|
| Inglés | completo (fuente) | sí |
| Alemán | completo | sí |
| Español | completo | sí |
| Francés, polaco, portugués (Brasil), turco, neerlandés | beta (traducción automática, no revisada del todo) | no |
La forma más rápida de ayudar: revisa un idioma beta y corrige lo que suene mal.
Launcher
Archivos: app/locales/<code>.json, por ejemplo app/locales/fr.json. La estructura es anidada y la fuente es
en.json:
{
"logViewer": {
"title": "Game log",
"newLines": "{n} new line | {n} new lines",
"empty": {
"openLatest": "Open {name}"
}
}
}
Reglas:
- Las claves se quedan exactamente como en
en.json. No añadas claves que no existan en inglés. - Los marcadores como
{name}o{n}no se cambian: traduce las palabras de alrededor. - Las formas de plural se separan con
|en el orden de tu idioma: «uno | otros», en polaco «uno | pocos | muchos». - Los caracteres
{,},@y|tienen significado en vue-i18n. Para mostrar uno como texto, escríbelo como{'@'}. - Los mensajes de error del núcleo del launcher están en
errors: cada clave es el código que envía el núcleo.
Comprueba tu trabajo con las pruebas del frontend:
pnpm test
tests/i18n.test.ts comprueba que cada idioma tenga los marcadores y las formas de plural correctas, que ninguna clave
esté obsoleta y que los archivos se puedan leer. Falla si al alemán o al español les falta una clave, e indica cuánto
está completo cada idioma beta.
TRS Client
Archivos: client-mod/common/src/main/resources/assets/trsclient/i18n/<code>.json. Son planos, una clave por línea, y
van dentro de cada jar:
{
"bugreport.title": "Report a bug",
"bugreport.attach.modsCount": "{0} mods"
}
- Los marcadores van numerados:
{0},{1}… - Si falta una clave, se usa la inglesa y, si tampoco existe, la propia clave.
- Los nombres de las asignaciones de teclas en el menú de controles de Minecraft vienen de archivos de idioma aparte.
Después de cambiar un texto
key.trsclient.*, vuelve a generarlos:
node client-mod/scripts/gen-lang.mjs
Las pruebas se ejecutan con el build de Gradle de client-mod/ (./gradlew :common:test o ./gradlew build):
I18nTest comprueba claves y marcadores, y TextFitTest comprueba que los nombres quepan en los mosaicos y botones del
menú con el tamaño de ventana por defecto. En los idiomas beta, los textos demasiado largos solo se avisan.
Web
La web está en la rama website y tiene inglés, alemán y español. Los textos son archivos TypeScript en api/:
app/utils/messages.ts: textos generales de la webapp/utils/*-i18n.ts: textos de áreas concretas (incidencias, blog, circuitos, equipo, inicio de sesión, administración)shared/landing-en.ts,landing-de.ts,landing-es.ts: las páginas de inicio temáticasapp/content/launcher-privacy.<code>.md: la política de privacidad del launcher
Documentación
Esta documentación son archivos Markdown en docs-site/content/en/, de/ y es/ en la rama website. Cada página
tiene el mismo nombre de archivo en todos los idiomas. El inglés es la fuente.
Estilo
- Corto y claro. Di qué gana el jugador, no cómo funciona por dentro.
- El alemán usa «du» y el español «tú».
- Los nombres de producto se mantienen: TRS Launcher, TRS Client, servicios de TRS.
- Para los términos de Minecraft, usa las palabras de la traducción oficial de Minecraft en tu idioma.
Añadir un idioma nuevo
Un idioma nuevo afecta a varios sitios, así que abre primero una incidencia. Los idiomas nuevos empiezan como beta. En resumen:
- Launcher: un archivo nuevo en
app/locales/, más las entradas enapp/utils/i18n.ts(supportedLocales,languageListcon una bandera enpublic/flags/,pluralFormsy el idioma de zod) y en la listaLanguagedesrc-tauri/crates/core/src/settings.rs. - TRS Client: un archivo nuevo en la carpeta
i18n, las listasLANGUAGESyBETAencore/i18n/I18n.javay los códigos de idioma de Minecraft enclient-mod/scripts/gen-lang.mjs.