Open3

【Unity】Localization

nitonito

Locale

Localとは

LocaleScriptableObjectを継承したアセットで、日本語、英語、中国語(簡体字)…のようにアプリで対応したい言語ごとに作成する.

https://docs.unity3d.com/Packages/com.unity.localization@1.4/manual/Locale.html

プロパティ

プロパティ 説明
Locale Name ロケールの名前.言語選択メニュー内などで、ユーザー向けにロケール名をどのように表示するかをカスタマイズできる.
Locale Code [language]-[region] という形式のカルチャ名です。この名前は、ISO 639 の (2 つの小文字から成る) 言語に関連付けられたカルチャコードと、ISO 3166 の (2 つの大文字から成る) 国または地域に関連付けられたサブカルチャコードを組み合わせたものです。例えば、Language English は en、Regional English(UK) は en-GB、Regional English(US) は en-US です。非標準の識別子を表す場合は任意の文字列の値が使用可能です。
Culture Info このフィールドには、Locale Code に一致する Culture Info が表示されます。
Use Custom Formatter Smart Strings を使用して地域毎の書式設定を適用すると、Culture Info が使用されます。これは、時刻、日付、通貨、数字などの書式設定を制御します。Custom Formatter フィールドを有効にすると、異なるフォーマッターを使用してロケールを変更できるようになります。
Custom Formatter Code 地域毎の値の書式設定に使用できる、[language]-[region] という形式のカスタムコードです。
Sort Order Sort Order を使用して、リスト内で並べ替えされたロケールの並び順をオーバーライドできます。このリストの並び順は、言語選択メニュー内のロケールの表示に使用できます。両方のロケールが同じ Sort Order を持っている場合、それらは Locale Name に基づいて並べられます。デフォルトでは、ロケールは Sort Order が最小のものから昇順で並べられます。
Metadata これはロケールに追加的なメタデータを添付するために使用します。このロケールはランタイムでスクリプトで使用できます。

Localの作成

GUIから作成する

Localization Settingアセットのインスペクタ、もしくはProject Settingsから以下のポップアップを表示して、デフォルトのLocaleを追加することができる.

スクリプトから作成する

Localの取得

利用可能なロケール一覧は LocalizationSettings.AvailableLocales.Locales で取得することができる.

List<Locale> locals = LocalizationSettings.AvailableLocales.Locales;

https://kan-kikuchi.hatenablog.com/entry/Unity_Localization#google_vignette

nitonito

String Table

String Table Collection

String Table CollectionString TableShared Table Dataの2つの部分から構成されます.ある Collectionに対して各ロケールが1つのTableを持ち,Collection内で共有して参照されるキー名やId値,共有メタデータなどがShared Table Dataに格納されます.

以下はこれらの関係性を表す図です.


画像引用元: Unity Documentation - String Tables