カルチャのクエリと適用
Unreal Engine (UE) の アクティブ カルチャ は、次の 3 つのことを指しています。
-
language - どのローカライゼーション データを使用するか決定するときに使用します。
-
locale - 国際化ライブラリ内の数字 / 日付 / 時間 / などのフォーマットを制御するときに使用します。
-
アセット グループ カルチャ - アセット グループは、デフォルトのプロジェクト言語とは異なるカルチャを割り当てることができるアセット クラスのグループを作成することができます。
アクティブ カルチャを変更すると、すべてを一度に設定することができます。ただし、プロジェクトでアセット グループを使用するには、言語とロケール (ゲームでは、同じ値に設定します)、およびアセット グループを別々の設定として扱う必要があります。
UE はこの区分を簡単にし、C++ とブループリントの両方で設定を管理するために使用できるいくつかのユーティリティも提供しています。
アクティブ カルチャを取得する
基盤となるアクティブ カルチャの情報は FInternationalization
シングルトンに保存されていますが、 UKismetInternationalizationLibrary
は、C++ と ブループリントの両方から情報にアクセスできるラッパー関数のセットを提供します。
関数 | 説明 |
---|---|
GetCurrentLanguage | アクティブな言語を IETF 言語タグとして取得します。 |
GetCurrentLocale | アクティブなロケールを IETF 言語タグとして取得します。 |
GetCurrentAssetGroupCulture | 名前付きアセット グループのカルチャを IETF 言語タグとして取得します。 |
アクティブ カルチャを設定する
基盤となるアクティブ カルチャの情報は FInternationalization
シングルトンに保存されていますが、UKismetInternationalizationLibrary
は、C++ と ブループリントの両方から値を設定できるラッパー関数のセットを提供します。 また、オプションで新しい設定をユーザごとの設定ファイルに保存する方法も提供します。
関数 | 説明 |
---|---|
SetCurrentCulture | IETF 言語タグからアクティブ カルチャ (言語、ロケール、およびすべてのアセット グループ) を設定します。 |
SetCurrentLanguage | IETF 言語タグからアクティブな言語を設定します。 |
SetCurrentLocale | IETF 言語タグからアクティブなロケールを設定します。 |
SetCurrentLanguageAndLocale | IETF 言語タグからアクティブな言語とロケールを設定します。 |
SetCurrentAssetGroupCulture | IETF 言語タグから名前付きアセット グループのカルチャを設定します。 |
ClearCurrentAssetGroupCulture | 指定したアセット グループのカルチャを消去します (アクティブな言語の使用に戻ります)。 |
また、エンジン コンソール コマンドを使用して、非出荷ビルドでカルチャを変更することもできます。
例:
culture=fr
language=fr
locale=fr
使用可能な言語のクエリ
基盤となる利用可能な言語の情報は FTextLocalizationManager
シングルトンに保存されていますが、 FTextLocalizationManager
は、C++ と ブループリントの両方から情報にアクセスできるラッパー関数のセットを提供します。
関数 | 説明 |
---|---|
GetNativeCulture | ローカライズ カテゴリのネイティブ カルチャを IETF 言語タグとして取得します。 |
GetLocalizedCultures | ローカライゼーション データが IETF 言語タグとして使用可能なカルチャのリストを取得します。 |
GetSuitableCulture | 利用可能なカルチャのリストから最適なカルチャを取得します。 |
GetCultureDisplayName | IETF 言語タグからカルチャの表示名を取得します。 |
デフォルト カルチャをオーバーライドする
UE は、基礎となるプラットフォーム層にアクティブな言語とロケールをクエリすることによって、デフォルトのカルチャを決定します。 プラットフォーム言語がサポートされていない場合、UE はローカライゼーション ターゲットのネイティブ言語にフォールバックします。 出荷時のプロジェクトでは、この動作はおそらくオーバーライドされません。 ただし、これらのオーバーライドは、開発中に他の言語をテストするのに便利です。
通常、プロジェクトのデフォルトの設定は、「DefaultGame.ini」ファイルに定義されます。 以下の例では、カルチャをフランス語に設定します。
例:
[Internationalization]
culture=fr
以下の例では、言語とロケールをフランス語に設定し、Audio アセット グループを日本語に設定します。
例:
[Internationalization]
language=fr
locale=fr
[Internationalization.AssetGroupCultures]
+Audio=ja
この設定は、コマンドライン フラグを使用して、オーバーライドすることもできます。
例:
-culture=fr
-language=fr
-locale=fr
ローカライゼーション プレビュー
ローカライゼーション プレビューは、エディタを終了せずにプロジェクトのローカライゼーション データをプレビューすることができ、 [Preview Game Language] 設定で設定できます。 以下の手順に従い、これらの設定を変更することができます。
-
エディタのメニューバーで、 [Edit]>[Editor Preferences] をクリックします。
-
[Editor Preferences] ダイアログボックスの [General] で、[Region and Language] をクリックします。
-
[Preview Game Language] の横にあるドロップダウンをクリックし、プレビューする言語を選択します。
プレビューは、Play in Editor (PIE) での実行中に自動的にアクティブになり、エディタで実行されるスタンドアロン インスタンスにも渡されます。 このプレビューを UMG エディタで使うと、さまざまな言語でウィジェットをプレビューすることができます。 プレビューの実行中は、編集可能なすべてのテキスト フィールドが読み取り専用になり、ソース データが翻訳データで誤ってオーバーライドされないように防止します。
PIE および UMG のプレビューは、言語やロケール設定に影響を与えずにローカライゼーション データのみをロードするため、実行時のプロジェクトの外観を正確に表示できるとは限りません。 正確な表示が必要な場合は、エディタでスタンドアロン インスタンスを実行します (これは、-game
でエディタを実行するのと同じです)。
カルチャ再マピング
カルチャ再マッピングは、あるカルチャ コードを別のカルチャ コードにマッピングする方法を提供し、スクリプトや国別コードでは処理できない地域的な差異を処理するのに役立ちます。 カルチャ再マッピングは DefaultGame.ini
の中で、セミコロンで区切られた一対の IETF 言語タグで設定します。
例:
[Internationalization]
+CultureMappings="es-MX;es-419"
カルチャ制限
カルチャ制限は、特定のカルチャを有効または無効にする方法を提供します。これは、ビルドごとのコンフィギュレーションに基づいて実行されます。 カルチャ制限は、テストに必要な言語を無効にする場合に便利ですが、プロジェクトの出荷時のバージョンには使用できません。
カルチャ制限は DefaultGame.ini
の中に、IETF 言語タグで設定されます。 制限を適用するビルド コンフィギュレーションのリストを含めることができます (ビルド コンフィギュレーションがリストされていない場合は、制限がすべてのビルド コンフィギュレーションに適用されることを意味します)。
例:
[Internationalization]
;すべてのビルド コンフィギュレーションでフランス語のみを有効にする
+EnabledCultures="fr"
[Internationalization]
;テストおよび出荷時のビルド コンフィギュレーションでフランス語のみを有効にする
+EnabledCultures="fr;Test,Shipping"
[Internationalization]
;出荷時のビルド コンフィギュレーションでドイツ語を無効にする
+DisabledCultures="de;Shipping"