【Unity】モバイルアプリのローカライズ

botman_orange Unity

UnityHub-2.4.3 Unity-2020.3.6f1 macOS-11.2.1

はじめに

Unity でモバイルアプリを作成するときのローカライズについてです。

共通の string ファイル用意してとか簡単にできるのかと思ったのですがすこしめんどくさそうです。。。

下記を参考にアプリ内文言とアプリ名を日本語と英語表示できるようにしてみました。

ソース(GitHub)

アプリ内文言のローカライズ

Application.systemLanguage で現在の言語設定を取得できるようなのでこれを使用して文言を出し分けます。

上記スクリプトを指定の Text に設定すれば完了です。

back

コードで文言を設定する場合は _text_jp とかを public にして下記のようにするといけるかも?

アプリ名のローカライズ

アプリ名のローカライズは Android と iOS で別々に設定しなければいけないようです。

Android

  1. Assets/Plugins/Android/res フォルダを作成する
  2. 言語ごとに「values-言語コード」でフォルダを作成する
  3. string.xml を作成する

string

string.xml の中身はこんな感じです。

これで Android のアプリ名のローカライズは完成です。

下記のように aar を作成してアプリ名のローカライズをするのが推奨のようです?
【Unity】Andoridでアプリ名をローカライズするならaarライブラリを作ろう

res フォルダ直下に string.xml を作成すればデフォルトの文言リソースになるのかと思いましたがそういうわけではないようでした。。。

デフォルトのアプリ名は Product Name になるようです(設定によって Product Name 変更で Bundle Identifier と Package Name が変更されてしまうのでそれぞれ Override Default のチェックを ON にしておきましょう)。

iOS

iOS の場合はビルド後に Xcode で InfoPlist を作成しなければいけないようです。

InfoPlist の作成はこちらをどうぞ。
iOSアプリのローカライズ

わりとめんどくさいので下記参考に半自動化しました。
【Unity】[iOS]Xcode projectの Localization 自動化

Assets/Editor 配下に下記スクリプトを置きます。

これでビルドすると Unity-iPhone Tests の InfoPlist にアプリ名が設定されます。これだけだと不十分で設定を反映するには下記の操作が必要になります。

  1. Localization の Japanese にチェック
  2. ダイアログの Use file 選択
  3. Target Membership の Unity-iPhone にチェック

xcode

完全自動ではないですがこれだけでも十分楽になりました。

おわりに

無事 iOS, Android のローカライズ対応ができました。ダークモード対応もしたかったのですがどちらもネイティブプラグインが必要そうなのでいったんあきらめます。。。

まだまだ Unity さわり始めたばかりなので下記の本で勉強中。

ステップアップUnity──プロが教える現場の教科書 WEB DB PRESS plus

新品価格
¥2,948から
(2021/5/3 20:11時点)

参考

コメント

タイトルとURLをコピーしました