Unity ローカライズ(日本語、英語)

コードのみで対応

※Unity2022.3.26f1にて動作確認(Android、iOS実機で動作確認)

Unity公式の翻訳アセットを利用してもいいのですが、アプリ内の一部分だけ対応すればいいのであれば、Application.systemLanguageを使って言語設定を取得して、日本語なのか、それ以外なのかを判定して、それぞれテキストを変えたり画像を変えたりするのが楽でした。
下記、コードです。

if (Application.systemLanguage == SystemLanguage.Japanese)
{
    //言語設定が日本語だった場合の処理を記載
}
else
{
    //言語設定が日本語以外だった場合の処理を記載
}


実機検証する際は、アプリ起動前に端末の言語設定を変更してください。

Unity公式Localization

iOSアプリに広告実装する際に必要なATT対応をすると、ダイアログを表示することになります。
そこに表示する文言を日本語と英語に対応させます。
コード対応でXcodeに自動で設定することも可能なようですが、少々ややこしいのとエディター上で確認できないのが不安です。
なので、Unity公式のアセットを利用してみました。

UnityのPackageManagerからLocalizationをインポート

LocalizationTablesの設定

ATTダイアログのテキストを翻訳対応させるための設定を作成します。
Window → AssetManagement → LocalizationTablesを開きます。

テーブルに設定する言語を設定するためにLocaleGeneratorを押してください。

EnglishとJapaneseを選択してGenerateLocalesを押します。

保存先フォルダを選択するのでLocalizationというフォルダをAsset直下に作成して選択しました。

Createを押してテーブル作成します。
LocaleTableという名前で作成。

AddNewEntryを押してテキストを呼び出す際のキーとなる設定を追加します。

キー名を「ATT」とします。
英語、日本語で呼び出すテキストを設定します。

作成したキーを呼び出す設定をProjectSettingのLocalizationで行います。
Metadataに+してiOS → App Infoと選んでください。

User Tracking Usage DescriptionがiOSのATTダイアログになるので、
そこにさきほど作成したATT用のキーファイルを参照設定します。
これでテストする端末の言語を英語に変えると、英テキストが表示されるようになります。

なお、デフォルト言語についてはSpecific Locale Selectorに設定してある言語になるようです。

以上です。

コメント

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