iOSのストアで言語を日本語と認識させるためのUnity多言語対応

開発部エンジニアのY.A.です。
Unityで多言語対応してみた話です。

環境

  • Unity 2023.2.20f1(日本語)

はじめに

今回の記事は、Unityで開発したアプリをAppleのストアに公開した際に、下部の言語の欄が「英語」になっていたことから始まりました。 日本語しか対応していないので、できれば日本語にしていきたいですね。

ストアの言語表示を「日本語」にするには

Appleのストアに日本語と表示させるには、Unityビルド時に作成されるInfo.plistの「Default localization」の項目が日本語になっていれば良いようです。 下図のように今は英語(en)になっています。 これでは英語しか出てきませんね。

公式の多言語対応のドキュメントを読む限り、ローカライズ用の文字列ファイルを追加して、そこに日本語を追加していくしかなさそうです。 ただ、XCodeのプロジェクトを吐き出すUnityでこれをやると、毎回同じ作業をXCode上でやらないといけなく、現実的ではありません。 Unityでのビルド後に書き換えることもできるかもしれませんが、できれば公式の方法で対応させたいです。

Unityの多言語対応

今回は以下のステップでUnityの多言語対応を行い、Appleのストアで日本語と認識させていきます。

  1. Unity用ローカライズライブラリの導入
  2. 日本語用の設定の追加
  3. iOS向けの設定

Unity用ローカライズライブラリの導入

Unityをローカライズ対応するには、公式パッケージを導入する必要があります。 公式のリファレンスを見てもらうのが早いですが、簡単に手順を説明します。

  1. ウィンドウ  > パッケージマネージャーからパッケージマネージャーのウインドウを開きます。
  2. 左上の追加マークから名前でパッケージをインストールを選びます。
  3. 入力欄にcom.unity.localizationを入力しインストールします。
  4. 編集 > プロジェクト設定でプロジェクト設定画面を開きLocalizationのタブを開きます。
  5. Createボタンを押すとLocalizationSettingファイルを作成する画面に遷移するので、任意のフォルダに任意のファイル名で作成します。 今回は、Asset > Localize > LocalizationSettingsと配置しています。

日本語用の設定の追加

  1. LocalizationSettingファイルを選択するとインスペクターに設定画面が出てきます。

  2. 設定画面でAddLocaleを押すと、追加する言語を選ぶ画面がでます。必要なものを選択し「AddLocales」を押してください。
    注意:ここでは必ずEnglish(en)も選択してください。選択しない場合XCodeのビルドでエラーになります。
    ここでもフォルダの選択を求められます。今回は先ほどと同じAsset > Localizeに保存します。

  3. 追加が完了するとフォルダ内に先ほど選択したLocaleファイルができ、AvailableLocalesも追加されています。
  4. LoacalizationSettingのインスペクターを開きLocale IDProject Locale IdentifierJapaneseに変更します。
  5. ウィンドウ > アセット管理 > Localization Tablesを選びLocalization Tablesウィンドウを起動します。
  6. 画面左上のNew Table Collectionクリックすると追加画面が表示されるため、名前を適切なものに変えてCreateを押します。 保存先はAsset > Localizeにしています。
  7. 英語と日本語のリソースが作成できました。New Entryを押すことでレコードの追加ができます。今回はAppNameを仮で追加しています。
  8. ウィンドウ > アセット管理 > Localization Scene Controlsに移動します。
  9. String Tableの項目を先ほど作成したTextTableに変更します。

iOS向けの設定

最後に当初の目的ようにiOSの設定をしていきます。

  1. LocalizationSettingファイルのインスペクターを開き、最下部MetaDataの+ボタンを押し、iOS > AppInfoをクリックします。
  2. メタデータにiOSの情報が追加されました。
  3. 上記の状態までで目的は果たせますが、どうせですので短縮名とディスプレイ名に先ほど作成した値を設定します。
  4. 最後にプロジェクトをビルドしてinfo.plistの内容を確認します。
    値が$(DEVELOPMENT_LANGUAGE)に変わっています。ディスプレイ名に指定した多言語サンプルも入っています。

    この記事を参考にプロジェクトの設定を確認すると、デフォルト言語が日本語になっているのが確認できます。

まとめ

これで、Unityの公式に沿った多言語対応および日本語対応が完了しました。
少し手順は多いですが、多言語対応のリソース管理では文字だけでなく画像も管理できます。
仮に日本語だけでアプリを作るとしても、リソースの管理場所としてcom.unity.localizationを利用するのもいいかもしれませんね。 2024年末にGA予定のUnity6では、UIToolkitにlocalizationの値をバインドできるようになるようです。 今後もどんどん便利になっていきそうですね!

KENTEMでは、様々な拠点でエンジニアを大募集しています!
建設×ITにご興味頂いた方は、是非下記のリンクからご応募ください。
recruit.kentem.jp career.kentem.jp