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 のテキストを翻訳する

From Shroudforge
This page is a translated version of the page Translate mod text and the translation is 100% complete.


Translate mod text



Mod フォルダー内の同じ locale ファイルを使って、Modloader に表示されるテキストと Lua のテキストを翻訳します。PR #42 で追加された shroudforge.locale() から Modloader の言語を取得します。

Locale ファイル

各言語について locales/<code>.json に 1 つファイルを追加します。Modloader の言語選択にあるコードは現在、de、de-AT、de-CH、en-GB、en-US、es、fr、hi、it、ja、nl、pl、sv、zh です。ファイル名はコードと完全に一致させます。これらのファイルは mod.json および extended.mod.json と同じ場所に置きます。

スキーマは mod-locale.schema.json として公開されています。locale カタログでは mod.name と mod.description、設定や選択肢のラベル、グループ、アクション、変更履歴の項目、Lua の strings を翻訳できます。カタログは一部だけでもかまいません。翻訳がない項目にはソーステキストが表示されます。

{
  "$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" }
}

設定と選択肢のキーは extended.mod.json と同じままです。グループの翻訳はそのファイル内のグループ順に従います。アクションの翻訳では既存のアクション ID を使用します。保存済みの値は変わりません。

Lua でも同じテキストを使う

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

shroudforge.i18n.get(key, locale, fallback) は Modloader と同じ読み込み済みカタログを使います。まず de-AT のような地域コードを確認し、次にその言語の de を確認します。文字列がない場合はフォールバックテキストを返し、フォールバックが指定されていなければキーを返します。検索時にファイルを再読み込みすることはありません。PR #42 が言語 API を追加し、この機能が各 Mod のカタログに接続します。

設定を読み取れず shroudforge.locale() が en を返す場合、カタログ検索は最初に en-GB.json、次に en.json を確認します。en-GB は Modloader の既定の英語です。en-US は明示的に選択できるバリエーションとして残ります。

locale ファイルに runtime 機能は必要ありません。ShroudForge のインターフェーステキストは共有 Modloader 翻訳に含まれます。