コードのみで対応
※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に設定してある言語になるようです。
以上です。
コメント