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.

Mod-Texte übersetzen

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



Übersetze sichtbare Modloader-Texte und Lua-Texte mit denselben Locale-Dateien im Mod-Ordner. Die Modloader-Sprache wird über shroudforge.locale() gelesen. PR #42 ergänzt diese Abfrage.

Locale-Dateien

Lege pro Sprache eine Datei unter locales/<code>.json an. Aktuelle Codes aus der Modloader-Sprachauswahl sind de, de-AT, de-CH, en-GB, en-US, es, fr, hi, it, ja, nl, pl, sv und zh. Der Dateiname entspricht exakt dem Code. Die Dateien sind zusätzlich zu mod.json und extended.mod.json.

Das Schema steht unter mod-locale.schema.json. Ein Locale-Katalog kann mod.name und mod.description, Einstellungs- und Optionsbeschriftungen, Gruppen, Aktionen, Changelog-Zeilen und Lua-strings enthalten. Unvollständige Dateien sind erlaubt. Nicht übersetzte Einträge verwenden den Quelltext.

{
  "$schema": "https://bonsaibauer.github.io/shroudforge/schemas/mod-locale.schema.json",
  "settings": {
    "severity": {
      "label": "Protokollstufe",
      "options": { "info": "Information", "warn": "Warnung" }
    }
  },
  "groups": [
    { "label": "Protokoll", "actions": { "write": { "label": "Nachricht schreiben" } } }
  ],
  "strings": { "overlay.ready": "Bereit" }
}

Settings- und Optionsschlüssel bleiben dieselben wie in extended.mod.json. Gruppenübersetzungen folgen der Gruppenreihenfolge aus dieser Datei. Aktionsübersetzungen verwenden die vorhandene Aktions-ID. Gespeicherte Werte ändern sich nicht.

Dieselben Texte in Lua verwenden

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

shroudforge.i18n.get(key, locale, fallback) verwendet denselben geladenen Katalog wie der Modloader. Es prüft zuerst einen regionalen Code wie de-AT und danach dessen Sprache de. Fehlt ein Text, liefert die Funktion den Rückfalltext oder den Schlüssel. Die Abfrage greift nicht erneut auf Dateien zu. Das API-Konzept stammt aus PR #42 und wird hier um den mod-eigenen Katalog erweitert.

Wenn shroudforge.locale() bei einer nicht lesbaren Konfiguration en liefert, prüft der Katalog zuerst en-GB.json und dann en.json. en-GB ist der englische Standard des Modloaders. en-US bleibt als ausdrücklich auswählbare Variante verfügbar.

Die Locale-Dateien benötigen keine Runtime-Berechtigung. ShroudForge-Oberflächentexte bleiben in den zentralen Übersetzungen des Modloaders.