Unityで作成したiOSアプリの ローカライズ 手順について説明します。ローカライズの対応は、アプリ側の対応とAppストア側の対応の両方が必要となります。ここではその両方の対応についてそれぞれ説明していきます。
なお、Androidアプリの ローカライズ については以前、以下の記事でまとめました。
iOSはUnityで生成したXcodeのプロジェクトファイルをビルドするという2段構えのビルドになっているので、ローカライズも多少面倒です。
今回は自動化は置いておいて、ローカライズを手動で行う手順について説明します。自動化対応でき次第本記事をアップデート予定です。自動化に対応しました。こちらにまとめています。
アプリの ローカライズ手順
アプリのローカライズ手順はAndroidアプリと同じでApplication.systemLanguageで判断することになります。詳細な手順はこちらの記事を参考にしてください。
Xcodeでのローカライズ設定手順
iOSはアプリ名やアプリでは表示が制御できないダイアログなど、Unity上では多言語化できないものががあります。
これらはXcode上で設定する必要がありますので、その手順について説明します。
対応言語の設定
Unityでビルドして生成されたXcodeプロジェクトを起動し、対応言語を追加します。対応言語はPROJECTのUnity-iPhoneを選択してInfoタブを選択、下の方にあるLocalizationsの+ボタンで追加します。


追加の際に上記のようなダイアログが表示されますが、気にせずFinishで追加します。また、不要な言語があったら、マイナスボタンで削除できます。
この時、以下のようにリソースファイルもディスクから削除するかと問われるので、チェックを付けておきましょう。
チェックを付けていないと新たに同じ言語を追加するとき、すでにリソースがあるとエラーになり、追加できなくなります。

英語と日本語を追加した状態は以下のようになります。1 File Localizedとなっているのがローカライズ可能な言語になります。

プライマリ言語の設定
プライマリ言語はInfo.plistの一覧に設定します。Localization native development regionの値がプライマリ言語になります。英語をプライマリにしたい場合はEnglishを選択します。

アプリ名やシステムメッセージの設定
アプリ名やシステムダイアログに表示されるメッセージはUnity-iPhone Tests/Supporting Files/InfoPlist.strings にある.stringファイルに設定を記述します。
設定方法はkey=”string”のように指定します。以下にいくつか例を示します。
CFBundleDisplayName = "アプリケーション名";
NSUserTrackingUsageDescription = "ユーザートラッキング許可ダイアログに表示するメッセージ";
NSCameraUsageDescription= "カメラ使用許可ダイアログのメッセージ";
NSPhotoLibraryAddUsageDescription= "写真をライブラリに保存する許可ダイアログメッセージ";
このようにInfo.plistの値のうち、指定したKeyをこのファイルで定義した値に置き換えてくれます。Key値の概要はこちらにあります。
.stringファイルの設定が終わったら、Target MenbershipにTargetを追加します。InfoPlist.stringを選択した状態で画面右側のファイルマークを選択してTarget MenbershipにUnity-iPhoneとUnity-iPhone Testをチェックします。

実機でのアプリ動作確認方法
一通り設定し、ビルドするとローカライズされたアプリとなります。アプリはiPhoneの言語設定によって言語表示が変わりますが、一点注意があります。

例えば上記のように一番上に中国語、二番目に日本語が言語に設定されている時に、プライマリ言語が英語で日本語サポートされたアプリをインストールした時、アイコンのアプリ名は日本語で表示されてしまいます。
iPhoneは複数の言語設定が可能で上にあるものほど優先されるようで、それはアプリのプライマリ言語に関係なく、サポートされている言語から選ばれます。
どの言語も対応していなかったとき、しょうがなく表示される言語として選ばれるのがプライマリ言語ということになります。
App Store Connectの ローカライズ 設定手順
ストアのローカライズにはリリースが必要
ローカライズしたアプリをStoreに登録します。Storeに新たな言語ページを登録するためにはアプリのリリースが必要になります。新しいバージョンを追加してリリース画面の右側日本語のドロップダウンを選択して追加したい言語を選択します。

追加したい言語に切り替えると、日本語のリリースと同様に概要、キーワードなどストアに掲載される情報の設定を行います。
またApp情報を選択し、ローカライズしたい言語のアプリ名やサブタイトルの入力も審査までに行っておきます。

ローカライズの注意点
Appプレビューとスクリーンショットも出しなおす
Appプレビューとスクリーンショットは言語プルダウンを変更しても表示されたままになっているので、再掲載は不要と勘違いしてしまいがちです。

こちらをローカライズしたものを登録しておかないとストアに掲載されませんし、プライマリ言語として選択することもできません。
審査が必要な項目になるので、必ず提出時に変更しておいてください。
プライマリ言語選択ができない
プライマリ言語の設定が日本語のプルダウンが表示されていますが、これは審査が必要な項目ではないにも関わらず、なぜかアプリを審査提出準備中しか設定することができません。
また、リリース後にローカライズされたページが有効になるまでプライマリ言語を変更することができません。明らかにストアのバグだと思います。
対策としては、以下の流れで設定するしかないようです。
ローカライズを行ったApp情報やリリースを提出→審査パスしリリースが完了→ローカライズした言語のApp情報が有効になる→再度新しいリリースを作成→以下のプライマリ言語を変更

これでアプリを審査せずとも変更できます。変更後はすぐにストアやAppアナリティクス、マイAppの表示がプライマリ言語での表示になります。
おわりに
ストアのローカライズ対応が意外とめんどくさかったです。というより、何が審査が必要で不要なのかとか、いつ変更できるのかなど手探りで探す必要がありました。
また、Xcodeでのローカライズは意外とめんどくさいので自動化したスクリプトを使用することを推奨します。
コメント
[…] […]