開発部エンジニアのY.A.です。
Unityで多言語対応してみた話です。
環境
- Unity 2023.2.20f1(日本語)
はじめに
今回の記事は、Unityで開発したアプリをAppleのストアに公開した際に、下部の言語の欄が「英語」になっていたことから始まりました。 日本語しか対応していないので、できれば日本語にしていきたいですね。
ストアの言語表示を「日本語」にするには
Appleのストアに日本語と表示させるには、Unityビルド時に作成されるInfo.plistの「Default localization」の項目が日本語になっていれば良いようです。 下図のように今は英語(en)になっています。 これでは英語しか出てきませんね。
公式の多言語対応のドキュメントを読む限り、ローカライズ用の文字列ファイルを追加して、そこに日本語を追加していくしかなさそうです。 ただ、XCodeのプロジェクトを吐き出すUnityでこれをやると、毎回同じ作業をXCode上でやらないといけなく、現実的ではありません。 Unityでのビルド後に書き換えることもできるかもしれませんが、できれば公式の方法で対応させたいです。
Unityの多言語対応
今回は以下のステップでUnityの多言語対応を行い、Appleのストアで日本語と認識させていきます。
- Unity用ローカライズライブラリの導入
- 日本語用の設定の追加
- iOS向けの設定
Unity用ローカライズライブラリの導入
Unityをローカライズ対応するには、公式パッケージを導入する必要があります。 公式のリファレンスを見てもらうのが早いですが、簡単に手順を説明します。
ウィンドウ > パッケージマネージャー
からパッケージマネージャーのウインドウを開きます。- 左上の追加マークから名前でパッケージをインストールを選びます。
- 入力欄に
com.unity.localization
を入力しインストールします。 編集 > プロジェクト設定
でプロジェクト設定画面を開きLocalizationのタブを開きます。Create
ボタンを押すとLocalizationSettingファイルを作成する画面に遷移するので、任意のフォルダに任意のファイル名で作成します。 今回は、Asset > Localize > LocalizationSettings
と配置しています。
日本語用の設定の追加
LocalizationSettingファイルを選択するとインスペクターに設定画面が出てきます。
設定画面でAddLocaleを押すと、追加する言語を選ぶ画面がでます。必要なものを選択し「AddLocales」を押してください。
注意:ここでは必ずEnglish(en)も選択してください。選択しない場合XCodeのビルドでエラーになります。
ここでもフォルダの選択を求められます。今回は先ほどと同じAsset > Localize
に保存します。
- 追加が完了するとフォルダ内に先ほど選択したLocaleファイルができ、AvailableLocalesも追加されています。
- LoacalizationSettingのインスペクターを開き
Locale ID
とProject Locale Identifier
をJapanese
に変更します。 ウィンドウ > アセット管理 > Localization Tables
を選びLocalization Tablesウィンドウを起動します。
- 画面左上の
New Table Collection
クリックすると追加画面が表示されるため、名前を適切なものに変えてCreate
を押します。 保存先はAsset > Localize
にしています。 - 英語と日本語のリソースが作成できました。
New Entry
を押すことでレコードの追加ができます。今回はAppNameを仮で追加しています。 ウィンドウ > アセット管理 > Localization Scene Controls
に移動します。String Table
の項目を先ほど作成したTextTable
に変更します。
iOS向けの設定
最後に当初の目的ようにiOSの設定をしていきます。
- LocalizationSettingファイルのインスペクターを開き、最下部
MetaData
の+ボタンを押し、iOS > AppInfo
をクリックします。
- メタデータにiOSの情報が追加されました。
- 上記の状態までで目的は果たせますが、どうせですので短縮名とディスプレイ名に先ほど作成した値を設定します。
- 最後にプロジェクトをビルドしてinfo.plistの内容を確認します。
値が$(DEVELOPMENT_LANGUAGE)
に変わっています。ディスプレイ名に指定した多言語サンプル
も入っています。
この記事を参考にプロジェクトの設定を確認すると、デフォルト言語が日本語になっているのが確認できます。
まとめ
これで、Unityの公式に沿った多言語対応および日本語対応が完了しました。
少し手順は多いですが、多言語対応のリソース管理では文字だけでなく画像も管理できます。
仮に日本語だけでアプリを作るとしても、リソースの管理場所としてcom.unity.localization
を利用するのもいいかもしれませんね。
2024年末にGA予定のUnity6では、UIToolkitにlocalizationの値をバインドできるようになるようです。
今後もどんどん便利になっていきそうですね!
おわりに
KENTEMでは、様々な拠点でエンジニアを大募集しています!
建設×ITにご興味頂いた方は、是非下記のリンクからご応募ください。
recruit.kentem.jp
career.kentem.jp