テクノモンキーのアプリ開発日記

テクノモンキーの開発ブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsやアプリ開発に役立つ情報を発信します。

【Unity】ローカライズ対応 日本語か英語かで処理を分ける方法(Application.systemLanguage)

https://unity3d.com/files/images/ogimg.jpg?1



最近「ネコベンチャー」っていうアプリをリリースしました。

play.google.com


このアプリで、Unityのローカライズに挑戦してみたんですが、意外と簡単だったので、備忘録として残しておきます。





【Unityアプリ ローカライズ対応】端末の設定言語で判定する



今回は端末の設定言語を取得して、日本語か日本語以外かを判定して処理を分ける方法です。

if (Application.systemLanguage != SystemLanguage.Japanese) {

	titleText.GetComponent<Text> ().text = "Cat's Adventure";
	Debug.Log ("日本語以外");
 else {

	Debug.Log ("日本語:"+Application.systemLanguage);
	titleText.GetComponent<Text> ().text = "ネコベンチャー";
}


上記の例だと、
日本語以外の場合英語のテキストを表示、
日本語の場合は日本語のテキストを表示させてます。

「Application.systemLanguage」を使えば端末のOSで実行されている言語を取得できるようです。


Application.systemLanguage

docs.unity3d.com





【Unityアプリ ローカライズ対応】ちゃんとやる場合



Unityでローカライズ対応をちゃんとやる場合は以下の記事あたりを参考にするといいかと思います。
僕の場合はとりあえず表示を英語と日本語で切り替えられればそれでよかったので、上記の方法にしました。


UnityのTextAssetを使う方法↓

UnityのTextAssetを使った多言語対応(ローカライズ)の方法 | Taiyo Project



ボイスをローカライズする場合などに参考にできそう↓

madnesslabo.net



あとは、アプリをローカライズする場合の注意点やポイントは以下の記事が参考になりました↓
qiita.com




テキストが少なくて済むようなゲーム系のアプリだったら、ちゃんとローカライズすればヒットする可能性も高まりそうですね。