【Unity】Andoridでアプリ名をローカライズするならaarライブラリを作ろう
Android向けのアプリを作る場合、aarファイル(Android ライブラリ)を使ってアプリ名をローカライズします。
Unityのプロジェクトでresフォルダにstrings.xmlを配置する方法もありますが、aarファイルを使うように警告が出るので、こちらを使うようにすると吉。
この記事ではアプリ名をローカライズするaarファイルの作成方法を紹介します。
環境
macOS 10.15 Catalina
Unity2018.4.23f1
Android Studio 4.0
参考にした情報
実はこちらの方が解説されている方法そのままです。
aarファイルをUnityのプロジェクトにおいてどこに配置するかについてはUnityのマニュアルも確認すると良いでしょう。
aarって?
aarファイルとは、Android ARchiveファイルのことで、Androidのライブラリです。Javaで実装した機能をライブラリに含めてUnityで簡単に呼び出しても良いですし、今回のローカライズのようにローカライズしたリソースをUnityで使用するのにも使えます。
ライブラリなので再利用性にすぐれていて、もし複数のプロジェクトで使いたい機能があればAndroidライブラリとして用意しておくと良いかもしれません。Unityの場合はC#で実装した機能を使いまわしていることが多いですが、JavaやKotlinで実装した機能を使い回すのであればaarとして準備しておくと良さげ。
どちらかというとAndroid Studioでの開発に慣れている人だと良く使うかな?
Android Studioでローカライズする場合
Android Studioでは、文字列や色の設定、スタイルなどを定義したxmlファイルが作成されます。ソースコードに値を埋め込むのではなく、定義値を別のファイルで持っておくことで、条件に合わせて必要な値を取り出すようになっています。
ローカライズではこの文字列のファイルであるstrings.xmlを編集することになります。
最初作ったAndroid向けアプリでは、無駄に英語対応をしたりもしたので、私にとっては非常に馴染みのある(そして苦労した思い出のある)ファイルでもあります。
おっと、話が逸れましたが、今回の目的であるアプリ名のローカライズはこのstrings.xmlに記載します。キーに対応した値を言語ごとに作成していくことで、Android本体の言語設定に応じてアプリ名を切り替えてくれます。
Unityのプロジェクト内にstrings.xmlを直接配置することもできますが、推奨される方法としてはaarファイルを作成してインポートする方法になっているので、この記事ではaarファイルを作成する方法を紹介します。
ローカライズ用aarファイルを作成する
aarファイルを作成する場合は、Android Studioを使います。もしまだインストールしていない場合はGoogle社の以下のページを参考にインストールしてください。
アプリ名をローカライズするライブラリを作成するにあたっては、新しくプロジェクトを作成します。Android Studioを開いて [Start a new Android Studio project] を選択します。
今回はアプリ名のローカライズだけしたいので画面は必要ありません。[No Activity] を選択して [Next] をクリックします。
続いてプロジェクトの設定を行います。プロジェクト名、パッケージ名、保存する場所を選択して [Finish] をクリックすると新規プロジェクトが作成されます。コーディングはしないのでLanguageはJavaでもKotlinでもOK。
『Minimum SDK』のAPIレベルはUnityのプロジェクトと合わせるようにしてください。ここがずれているとaarファイルをUnityにインポートしたあとにマニフェストファイルのマージエラーが発生します(1敗)
プロジェクト作成後、Gradleのビルドが終わったら画面上部のメニューバーから [File] -> [New] -> [New Module] を選択します。Gradleのビルド中は[New Module] の項目がグレーアウトされた状態になります。
追加するモジュールの種類として [Android Library] を選択します。選択したら [Next] をクリック。
追加するライブラリの設定を行います。モジュール名にライブラリの名前を入力します。パッケージ名はプロジェクト作成時のドメインが使われているかと思いますが、変更したい場合は [Edit] から。入力が終わったら [Finish] をクリックします。
Projectのツリーに作成したライブラリが表示されます。この段階ではまだリソースフォルダが作成されていないので手動で作成しましょう。作成したライブラリ(ここでは「mylibrary」)を選択した状態でコンテキストメニューを開き、[New] -> [Android Resource Directory] を選択します。
リソース用のフォルダの設定を行います。色々と選択できるようになっていますが、ここでは『Directory Name』が [values] となっていること、『Resource type』も [values] が選択されていることを確認して [OK] をクリックします。
[Android Resource Directory] のメニューから『values』フォルダを作成すると自動的に『res』フォルダも作成してくれるので便利です。
次は『values』フォルダを選択した状態でコンテキストメニューを開き、[New] -> [Values Resource File] を選択します。
『File name』で [strings.xml] と入力します。このファイルにローカライズの情報を記載します。
作成した『strings.xml』をダブルクリックして開きます。『resources』のタグの間に文字列の情報を記載していきます。
アプリ名を設定するタグ名は『app_name』です。この部分は作成したライブラリ(ここでは『mylibrary』)ではなく、『app』の下にあるstrings.xmlから内容をコピーしてくると簡単です。
以下のように『app_name』の内容を記載したら、右上にある [Open editor] ボタンをクリックして翻訳のエディタを開きます。
翻訳エディタではstrings.xmlで定義された名前について、言語ごとに比較して翻訳を行うことができます。この段階では英語のみなので、左上の地球のマークをクリックして言語を追加します。
表示されたメニューから日本語を追加します。ここでは『Japanese (ja) in Japan (JP)』を選択していますが、日本語の場合どちらを選んでも動作します。万全を期すなら両方追加しておくといいかもしれません。
日本語を追加したら、『app_name』の日本語の列を選択し、下の入力欄で『Translation』に日本語でのアプリ名を入力します。
アプリ名を入力したらビルドしましょう。メニューバーから [Build] -> [Make Project] を選択してビルドを行います。
ビルドが完了すると、<プロジェクト名>/mylibrary/build/outputs/aar のフォルダにaarファイルが作成されます。このファイルをUnityにインポートして使いましょう。
Unityにインポートする
ここからUnityでの作業です。といっても作成したライブラリのファイルをインポートするだけなので簡単です。
パスが決まっているので、そこだけ注意しましょう。配置するのは [Assets/Plugins/Android] のフォルダです。まだ存在していなければ手動で作成すればOKです。
Player Settingsでは『Minimum API Level』をライブラリのものと合わせます。
動作確認
Android用にapkを書き出して確認してみます。このページではAndroid StudioのADVマネージャーからシミュレーターを使って確認します。お手元に実機があればそちらでもOKです。
日本語でアプリ名を確認すると、aarファイルで指定した「アプリの名前」が表示されます。表示幅の問題で「前」が省略されているので、端末によっては長い名前が入らないことも留意しておくといいかもしれません。
端末の言語設定を英語にした場合は、UnityのProduct Nameが使われます。今回作成したaarファイルの中では英語用に翻訳を用意していないので、こうした言語ではProduct Nameが表示されるようになります。実際にアプリをリリースする場合は英語の名前も設定しておくと安心です。
まとめ
Androidでアプリ名をローカライズする場合は、Androidライブラリ(aar)を使ってリソースを用意します。
この記事の画面に沿って操作してもらえれば「あれ? 意外と難しくないな?」と感じてもらえると思います。1回やっておけば、リリース後半で慌てなくて済むので余裕がある時に試してみてください。
ゲーム開発の攻略チャートを作りました!
-
前の記事
【マジか】Unity Learn Premium、無償化されるってよ 2020.06.29
-
次の記事
まだまだ語りたい真女神転生1の世界〜新宿から大きく動きます【Part2】 2020.07.01
コメントを書く