ローカライゼーション

このページは自動翻訳されており、誤りが含まれる場合があります。誤りを見つけた場合は「このページを編集」リンクからご協力ください。

Turian はゲームと Studio 自体に同じローカライズの仕組みを使います。翻訳は文字列テーブルのアセットに置き、コードと UI ドキュメントはキーでテキストを参照します。アクティブなロケールはゲームの実行中でも変えられます。

文字列テーブル

ロケールごとに 1 つの .strings ファイルを Assets/ 内の任意の場所に置きます — 例えば Assets/Localization/ja.strings:

{
  "locale": "ja",
  "entries": [
    { "key": "menu.play", "source": "Play", "translation": "プレイ", "state": "translated" },
    { "key": "menu.quit", "source": "Quit", "translation": "終了", "state": "translated",
      "note": "メインメニューの最後のボタン" },
    { "key": "inventory.items", "source": "{count} items",
      "plurals": { "other": "# 個のアイテム" }, "state": "translated" }
  ]
}

source は原文、translation は訳文、state は翻訳者のための進捗(new、translated など)です。プロジェクト内のすべてのテーブルがゲームの起動時に読み込まれます。

プロジェクト設定

Localization Settings アセット(Assets パネルの New → Settings → Localization Settings)で、ゲームが開始する Default Locale と提供する Available Locales を宣言します。

コードでのテキスト参照

var title = Localization.T("menu.play");                        // ja では「プレイ」
var fallback = Localization.T("menu.credits", fallback: "Credits");
var items = Localization.T("inventory.items", count: 3);         // 「3 個のアイテム」
var source = Localization.Source("Game over");                   // テキスト自体がキー

Localization.SetLocale("ja");
Log.Logger.LogInformation("現在のロケール: {Locale}", Localization.ActiveLocale);

参照は例外を投げません。キーがなければフォールバック(またはキー)を返し、テーブルが読み込まれていなければ入力をそのまま返します。解決は地域から言語へ — pt-BR → pt — さらに既定のロケールへとフォールバックします。

保持しているテキストを更新するには Localization.Service?.LocaleChanged を購読します。

UI ドキュメントでのテキスト参照

.ui ドキュメントのラベルは自動的にローカライズされ、書かれたテキストがそのままキーになります。明示的なキーを使うには要素に text-key を付けます:

<Label text="Play" />                          <!-- 原文で参照 -->
<Button text="Quit" text-key="menu.quit" />    <!-- キーで参照 -->

ゲーム UI を参照してください。

メッセージ、複数形、選択

メッセージは ICU MessageFormat の小さなサブセットをサポートします:

形式 例
置換 こんにちは、{name}!
複数形ブロック {count, plural, one {# apple} other {# apples}}
選択ブロック {gender, select, female {She} male {He} other {They}} won
エントリごとの複数形 エントリの plurals オブジェクト。キーは zero、one、two、few、many、other

# は数を表します。複数形のカテゴリは各言語の CLDR ルールに従うので、ポルトガル語、ポーランド語、アラビア語なども正しい形を選びます。

翻訳者との作業

エディターのライブラリは、テーブルを翻訳ツールが使う形式 — XLIFF 1.2 と CSV — との間で変換し、キー、原文、訳文、注記、状態を保持します。翻訳者は自分のツールで作業し、プロジェクトは .strings を正本として保てます。

ロケールを試す

Play Mode と CLI では、セッションごとにロケールを強制できます:

turian-cli playmode MyGame --locale pt-BR --out pt-br.png
turian-cli screenshot MyGame --locale ja --out ja.png

Studio 自体

Studio も同じ仕組みでローカライズされています。Edit → Localization で言語を切り替えられます。1.0 には英語とブラジルポルトガル語が含まれます。


← すべてのドキュメント このページを編集