- Unity6 (6000.0.25f1)
- Localization 1.5.3
UnityのLocalizationを使用して画像のローカライズ対応をしていきます。
このページでは「日本語(Japanese)」と「英語(English)」の2種類に対応させていきます。
テキストのローカライズはこちら↓
ローカライズ用画像の準備
最初にローカライズ用の画像を準備します。
このページでは以下の画像を使っていきます。
日本語対応

英語対応

多言語対応テーブル作成
まずは各言語に対応する画像のテーブルを作成します。

テーブル作成用ウィンドウが開きます。

さらに詳細ウィンドウが表示され、テーブルの種類や名前を設定します。
このページでは「SampleImageTable」という名前でテーブルを作成します。

テーブルの詳細を設定したら保存先を選択します。

これで画像ローカライズ用のテーブル作成は完了です。
各言語のローカライズ設定・編集
テーブルの作成が完了したらテーブルを編集していきます。
編集したいテーブルが表示されていない場合は「Selected Collection」で任意のテーブルを選択します。

編集したいテーブルが表示されたら、ローカライズ設定をしていきます。

「Key」、「English(en)」、「Japanese(ja)」という3種類の入力エリアが表示されるのでそれぞれ入力していきます。

キー名は好きな名前でOKです。
これで言語ごとに別々の画像が表示される設定ができました。
これをローカライズしたい画像の分だけ作成していきます。
ローカライズ用のテーブル編集はこれで完了です。
ロケールデータの適用
ロケールデータが作成できたら実際に適用していきます。
このページではUI用のImageにアタッチしていきます。

「Localize Sprite Event」コンポーネントが自動的に追加されます。
「Localized Asset Reference」で作成したキーを選択して、このImageオブジェクトに設定します。


これでTextMeshProへのアタッチが完了です。
この状態でUnityを実行して画像が言語ごとに切り替わるか確認してみます。


想定通り、言語ごとに設定した画像が表示されました。
スクリプトでロケール切替
言語ごとに画像の切替ができる状態になったので、最後にスクリプトから切り替えられるようにしていきます。
文字列のローカライズ時と同じスクリプトを利用します。
一応こちらにもスクリプトを記載しておきます。
using UnityEngine;
using UnityEngine.Localization.Settings;
using UnityEngine.Localization;
using UnityEngine.UI;
public class ToggleLocale : MonoBehaviour
{
private Toggle toggle;
private string localeKey;
void Start()
{
toggle = GetComponent<Toggle>();
localeKey = toggle.name;
toggle.onValueChanged.AddListener(Change);
}
public async void Change(bool isOn)
{
if (isOn)
{
LocalizationSettings.SelectedLocale = Locale.CreateLocale(localeKey);
//初期化のため待機
await LocalizationSettings.InitializationOperation.Task;
}
}
}
Unityを実行してみます。


Toggleを切り替えることで、画像も各言語に対応して切り替わりました。
以上で画像のローカライズ対応は完了です。

その他の関連ページはこちら!





