Tradurre il testo delle mod
More actions
Traduci il testo visibile del Modloader e il testo Lua usando gli stessi file locale nella cartella della mod. Leggi la lingua del Modloader tramite shroudforge.locale(), aggiunta dalla PR #42.
File locale
Aggiungi un file locales/<code>.json per ogni lingua. I codici attuali del selettore della lingua del Modloader sono de, de-AT, de-CH, en-GB, en-US, es, fr, hi, it, ja, nl, pl, sv e zh. Il nome del file deve corrispondere esattamente al codice. Questi file si trovano accanto a mod.json e extended.mod.json.
Lo schema è pubblicato come mod-locale.schema.json. Un catalogo locale può tradurre mod.name e mod.description, le etichette di impostazioni e opzioni, i gruppi, le azioni, le righe del changelog e le strings Lua. I cataloghi possono essere parziali. Le voci senza traduzione mantengono il testo sorgente.
{
"$schema": "https://bonsaibauer.github.io/shroudforge/schemas/mod-locale.schema.json",
"settings": {
"severity": {
"label": "Log level",
"options": { "info": "Information", "warn": "Warning" }
}
},
"groups": [
{ "label": "Logging", "actions": { "write": { "label": "Write message" } } }
],
"strings": { "overlay.ready": "Ready" }
}
Le chiavi di impostazioni e opzioni restano uguali a quelle di extended.mod.json. Le traduzioni dei gruppi seguono l'ordine dei gruppi in quel file. Le traduzioni delle azioni usano l'ID esistente dell'azione. I valori salvati non cambiano.
Usa lo stesso testo in Lua
local locale = shroudforge.locale()
local ready = shroudforge.i18n.get("overlay.ready", locale, "Ready")
shroudforge.i18n.get(key, locale, fallback) usa lo stesso catalogo caricato dal Modloader. Controlla prima un codice regionale come de-AT, poi la relativa lingua de. Se manca una stringa, restituisce il testo di fallback o, se non è specificato, la chiave. La ricerca non rilegge i file. La PR #42 fornisce l'API della lingua e questa funzione la collega al catalogo di ogni mod.
Se shroudforge.locale() restituisce en perché non è possibile leggere la configurazione, il catalogo controlla prima en-GB.json e poi en.json. en-GB è la lingua inglese predefinita del Modloader. en-US resta disponibile come variante selezionabile esplicitamente.
I file locale non richiedono la capacità runtime. Il testo dell'interfaccia ShroudForge resta nelle traduzioni condivise del Modloader.