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.

Översätta modtext

From Shroudforge
Revision as of 01:35, 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



Ö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.