Jump to content
Toggle menu
  • 3 articles
  • 22 files
  • 3 users
  • 2.5K edits
Shroudforge
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Traducir los textos de un mod

From Shroudforge
Revision as of 01:06, 7 November 2026 by Bonsaibauer (talk | contribs) (Importing a new version from external source)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Translate mod text



Los textos visibles del Modloader y los textos de Lua usan los mismos archivos de idioma del mod. El idioma elegido en el Modloader se obtiene con shroudforge.locale(), incorporada en el PR #42.

Archivos de idioma

Añade un archivo locales/<código>.json por cada idioma. Los códigos actuales del selector de idioma del Modloader son de, de-AT, de-CH, en-GB, en-US, es, fr, hi, it, ja, nl, pl, sv y zh. El nombre del archivo debe coincidir exactamente con el código. Estos archivos se guardan junto a mod.json y extended.mod.json.

El esquema está publicado en mod-locale.schema.json. El catálogo puede traducir mod.name, mod.description, las etiquetas de ajustes y opciones, los grupos, las acciones, las notas de versión y las cadenas Lua bajo strings. Los catálogos pueden estar incompletos. El texto original se conserva si falta una traducción.

{
  "$schema": "https://bonsaibauer.github.io/shroudforge/schemas/mod-locale.schema.json",
  "settings": {
    "severity": {
      "label": "Nivel del registro",
      "options": { "info": "Información", "warn": "Aviso" }
    }
  },
  "groups": [
    { "label": "Registro", "actions": { "write": { "label": "Escribir mensaje" } } }
  ],
  "strings": { "overlay.ready": "Listo" }
}

Las claves de ajustes y opciones se mantienen iguales que en extended.mod.json. Los grupos siguen el mismo orden que en ese archivo. Las traducciones de acciones usan su identificador actual. Los valores guardados no cambian.

Usar los mismos textos en Lua

local locale = shroudforge.locale()
local ready = shroudforge.i18n.get("overlay.ready", locale, "Ready")

shroudforge.i18n.get(key, locale, fallback) usa el mismo catálogo cargado que el Modloader. Busca primero el código regional, como de-AT, y después el idioma de. Si falta un texto, devuelve el texto alternativo o la clave. La consulta no vuelve a leer archivos. El PR #42 aporta la API de idioma y esta función la conecta con el catálogo de cada mod.

Si shroudforge.locale() devuelve en porque no se puede leer la configuración, la búsqueda consulta primero en-GB.json y después en.json. en-GB es el inglés predeterminado del Modloader. en-US sigue disponible como variante seleccionable explícitamente.

Los archivos de idioma no requieren el permiso runtime. Los textos propios de la interfaz de ShroudForge permanecen en las traducciones compartidas del Modloader.