Översätta modtext
More actions
Översätt synlig Modloader-text och Lua-text från samma språkfiler i modmappen. Läs Modloader-språket med shroudforge.locale(), som lades till i PR #42.
Språkfiler
Lägg till en fil under locales/<code>.json för varje språk. De aktuella koderna i Modloaders språkval är de, de-AT, de-CH, en-GB, en-US, es, fr, hi, it, ja, nl, pl, sv och zh. Filnamnet ska stämma exakt med koden. Filerna ligger bredvid mod.json och extended.mod.json.
Schemat publiceras som mod-locale.schema.json. En språkkatalog kan översätta mod.name och mod.description, etiketter för inställningar och alternativ, grupper, åtgärder, ändringsloggar och Lua-strings. Kataloger kan vara ofullständiga. Poster utan översättning behåller sin källtext.
{
"$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" }
}
Nycklar för inställningar och alternativ är desamma som i extended.mod.json. Gruppöversättningar följer gruppordningen i den filen. Åtgärdsöversättningar använder det befintliga åtgärds-ID:t. Sparade värden ändras inte.
Använd samma text i Lua
local locale = shroudforge.locale()
local ready = shroudforge.i18n.get("overlay.ready", locale, "Ready")
shroudforge.i18n.get(key, locale, fallback) använder samma katalog som Modloader har läst in. Funktionen kontrollerar först en regionkod som de-AT och därefter språket de. Om en sträng saknas returneras reservtexten eller nyckeln om ingen reservtext anges. Sökningen läser inte in filerna på nytt. PR #42 tillhandahåller språk-API:t och den här funktionen kopplar det till varje mods katalog.
Om shroudforge.locale() returnerar en eftersom konfigurationen inte kan läsas, kontrollerar katalogen först en-GB.json och sedan en.json. en-GB är Modloaders standard för engelska. en-US finns kvar som en variant som kan väljas uttryckligen.
Språkfiler kräver inte runtime-funktionen. ShroudForges gränssnittstext finns kvar i Modloaders gemensamma översättningar.