UnityのLocalizationのデフォルト言語設定

1 min read読了の目安(約600字

環境

  • Unity-2019.4.10f1
  • Localization-0.8.1 (preview)

問題

Locale SelectorsのSystem Locale SelectorがCultureInfoを参照するせいで、日本語iOSでデフォルトが正しく設定できない。

対応

独自のIStartupLocaleSelectorを定義してそれを使う。

using UnityEngine.Localization.Settings;
using UnityEngine.Localization;
using UnityEngine;

[System.Serializable]
public class SystemLanguageSelector
  : UnityEngine.Localization.Settings.IStartupLocaleSelector
{
  public Locale GetStartupLocale(ILocalesProvider provider) {
    return provider.GetLocale(Application.systemLanguage);
  }
}

上記のコードをプロジェクトに追加すると、Locale SelectorsでSystem Language Selectorが追加できるようになるので、それを適切な優先順位に追加する。