Search Unity

Resolved In early start app and in method Start() available locales is 0

Discussion in 'Localization Tools' started by DiamondKewa, Jun 5, 2022.

  1. DiamondKewa

    DiamondKewa

    Joined:
    Aug 20, 2017
    Posts:
    8
    Hello. I wants get all available locales in Start() method, but it returned me 0. How i can fix this problem?

    Code (CSharp):
    1. public class Localization : MonoBehaviour
    2. {
    3.     public static Localization Instance;
    4.  
    5.     private void Awake()
    6.     {
    7.         if (Instance == null)
    8.         {
    9.             DontDestroyOnLoad(gameObject);
    10.             Instance = this;
    11.         }
    12.         else if (Instance != this)
    13.         {
    14.             Destroy (gameObject);
    15.         }
    16.     }
    17.  
    18.     private void Start()
    19.     {
    20.         Debug.Log("Count: " + GetAvailableLocales().Count);
    21.         //SetLocale(Instance.GetAvailableLocales().Where(x => x.Identifier.Code == TransferData.Instance.UserData.Settings.LocaleCode).First());
    22.  
    23.     }
    24.  
    25.     public string GetUIString(string tableArgument) =>  LocalizationSettings.StringDatabase.GetLocalizedString("UI", tableArgument);
    26.  
    27.     public List<Locale> GetAvailableLocales() => LocalizationSettings.Instance.GetAvailableLocales().Locales;
    28.     public Locale GetCurrentLocale() => LocalizationSettings.SelectedLocale;
    29.     public void SetLocale(Locale locale) => LocalizationSettings.SelectedLocale = locale;
    30. }
    If I want to get the available languages later, let's say when I open the settings, it works fine, it returns 2 available languages.
     
  2. karl_jones

    karl_jones

    Unity Technologies

    Joined:
    May 5, 2015
    Posts:
    8,277
  3. DiamondKewa

    DiamondKewa

    Joined:
    Aug 20, 2017
    Posts:
    8
    karl_jones likes this.