【Unity】テキストを言語設定に応じて切り替える方法(iOS版)
アプリをリリースする際、端末の言語設定に応じて表示する言語(日本語、英語など)を切り替えたいと思ったのですが、2種類の対応が必要でややこしかったので記事にまとめておきます。
環境
- Unity 2019.4.0f1
このページの構成
ポイント
- 表示言語を切り替える方法は一般的にlocalize(多言語対応)と呼ばれているので、検索する時はこの文言を含めるといい
- 多言語対応には2種類あり、ゲーム内のテキストを切り替える方法と、ゲーム外のアプリ名やカメラ等へのアクセス権限を求めるアラート文言などを切り替える方法で対応が異なる
- ゲーム外の文言切り替えは基本、xcode側で処理する。こちらの情報が欲しい場合は、info.plistを検索文言に含めるといい
ゲーム内の文言を切り替える
普通に検索すると、大体こちらの情報が出てきます。
具体例をあげると、以下のようにゲーム内の同じ状況で、端末の言語設定に応じて違う言語のテキストを表示する方法です。
対応方法も多く公開されており、アセットなどもあるのでここでは紹介するだけに留めておきます。
ちなみに私は以下の記事を参考に実装しました。
テキストが多いゲームだと大変かも知れませんが、基本的にはこの方法で十分かなと思います。
Unityアプリを世界にどんどんリリースするためにやったこと
アセットだと以下のものが高評価っぽいです。
ちょっとお高いですが、上記の記事の方法だと手間を感じる時もあるので、セールがあったら買うかも。
他にも探せば色んな記事がありますし、無料のアセットもあるようなので自分にあった方法を探してみてください。
ゲーム外の文言を切り替える(アプリ名、アラートなど)
探すのに困ったのはこちらです。
今回、制作したのがAR機能を利用したアプリだったのですが、そのためにはユーザーからカメラへのアクセス許可を取る必要があります。
デフォルトの文言は以下のようにUnityのproject settingsから設定できるのですが、ここを多言語対応する方法がなかなか分かりませんでした。
アプリ名、アラートなどの多言語対応
ということで本題の設定方法ですが、作業はビルド後にXcode上で行います。
ここでは「デフォルト言語が英語になっているアプリで、カメラへのアクセス権限を求めるアラート文言の日本語版を追加する」手順を説明します。
まず追加する言語のinfoPlist.stringsファイルを追加します。
以下の画面を参考に、Localizationsに追加したい言語を追加してください。
すると自動的に追加した言語のinfoPlist.stringsファイルが作成されます。
次に、作成されたinfoPlist.stringsファイルに言語設定が日本語の場合に表示したいテキストを追加します。
以下の画面を参考に、表示したいテキストを追加してください。
以上で設定は終了です!
言語設定が日本語になっている端末で開くと、日本語のテキストが表示されることが確認できると思います。
なお、「NSCameraUsageDescription」の部分を変えることで他の箇所も多言語対応することができます。
今回はカメラへのアクセス許可の例にしていますが、アプリ名を変更したい場合は「CFBundleDisplayName = “アプリ名”」にするとアプリ名を多言語対応することができます。
ちなみに今回リリースしたのは、円形のステージで忍者が闘うARアクションゲームです。
画面内だけで完結するゲームとは少し違った体験ができるかなと思うので、良かったらダウンロードして遊んでみてください。