【iOS/Xcode】アプリ名をローカライズする時の設定【Unity】
UnityでiOS向けにビルドしたプロジェクトを使って実機ビルドを行うと、デフォルトではアプリの表示名がProduct名になっています。
アプリのタイトルが英語ならいいのですが、日本向けのゲームでは多くの場合アプリ名も日本語になっていることが多いです。他の国のストアでもリリースすることを考えると、言語に合わせて表示名が切り替わるのが望ましいですね。
といった場合には、InfoPlist.stringsで言語ごとにアプリ名を設定していきます。
環境
macOS 10.15 Catalina
Unity2018.4.23f1
Xcode11.5
iOSでアプリ名をローカライズするには
iOSのアプリを作る際、Xcodeでローカライズしたい言語に対応したInfoPlist.stringsのファイルに
のように記載することで、端末の言語設定に応じてアプリ名の表示を切り替えてくれます。「CFBundleDisplayName」が表示名の設定項目です。
Unityの場合、iOSビルドを行ってXcodeのプロジェクトをエクスポートした直後はいくつかの言語でローカライズ対象となっています。
……が、デフォルトでリストに表示されている言語については「deprecated」の文字が表示されているものがあるので、自分でLocalizationの設定を追加する必要があります。(手元で確認したUnity2018.4、Unity2019.2、Unity2019.4では「deprecated」が出ました)
「deprecated」となっているLocalizationを削除する方法については以下の記事もご覧あれ。
ローカライズの設定
アプリ名のローカライズ手順を画像と一緒に解説します。
PROJECTの「Unity-iPhone」を選択し、Infoタブからローカライズの設定を行うことができます。
ローカライズ対象言語の追加
Localizationの領域にある [+] ボタンをクリックすると、追加する言語を選択することができます。
表示されたメニューから「Japanese (ja)」を、下の方にある「Other」から追加で表示されるメニューから「Japanese (Japan) (ja-JP)」を追加すると良いでしょう。すぐ下に「Javanese (jv)」があるのでお間違えなく。Javaneseはインドネシアのジャワ島の言葉です。
言語を選択すると以下のようなダイアログが表示されます。言語に対応したInfoPlist.stringsのファイルを自動的に作成してくれるので、チェックを入れたまま [Finish] をクリックすればOKです。
「ja」と「ja-JP」を両方追加している理由ですが、以下のツイートによると、iOS13では「ja」だけではアプリ名のローカライズが反映されなかったようでした。なので、「ja-JP」も追加するのが良いと思います。
何故かはわからんがどうしたら良いかはわかった。
iOS 13 では、ja.lproj/InfoPlist.strings はみてくれずに、ja_JP.lproj/InfoPlist.strings を観るようだ。なので localize の設定で ja の他に ja_JP も追加して、Info.plist についてだけ ja_JP 側にも localize file を追加する、で回避できた。— IIMURA Takuji (@limura) September 22, 2019
InfoPlist.stringsの設定
ローカライズ対象の言語を追加すると、各言語に対応したInfoPlist.stringsのファイルが作成されます。
「Unity-iPhone」→「Unity-iPhone Tests」→「Supporting Files」のディレクトリを確認しましょう。
「InfoPlist.strings」のファイルを選択している状態で、画面右側のインスペクターアイコンをクリックしてインスペクターを表示します。
インスペクターの「Localization」の項目ではローカライズ対象の言語が表示されています。もし選択されていない言語があればここでチェックを入れます。
また、ビルドしたアプリに反映させるためには「Target Membership」の項目で「Unity-iPhone」にチェックを入れます。これを忘れると、設定がちゃんと書かれているのに実機に反映されない! と30分くらい焦ることになるので気をつけましょう(1敗)
InfoPlist.stringsのファイルでは、冒頭で紹介したように「CFBundleDisplayName」にアプリ名を設定します。
画像だとこんな感じ。
アプリ名を日本語にローカライズする場合は「InfoPlist.strings (Japanese)」と「InfoPlist.strings (Japanese (Japan))」の両方で記載するようにします。
ダブルクォーテーションが半角になっていないとビルドエラーが出るのでご注意を(1敗)
まとめ
iOSでアプリ名をローカライズしたい時には、ローカライズする言語に対応したInfoPlist.stringsに「CFBundleDisplayName」の設定を記載します。
ターゲットの入れ忘れは私がよくやる凡ミスなので、あなたには回避してもらえるとこの記事を書いた甲斐があります。
ゲーム開発の攻略チャートを作りました!
-
前の記事
【iOS/Xcode】ローカライズのdeprecatedが気になるので消す方法を【Unity】 2020.06.25
-
次の記事
【Unity】UIWebViewが原因でビルドが提出できない時の対処法【iOS/Xcode】 2020.06.26
コメントを書く