Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

How TextMesh Pro works with localization tools?

Discussion in 'Localization Tools' started by zhuxianzhi, Jul 3, 2019.

  1. zhuxianzhi

    zhuxianzhi

    Joined:
    Mar 30, 2015
    Posts:
    122
    Any examples?
     
  2. karl_jones

    karl_jones

    Unity Technologies

    Joined:
    May 5, 2015
    Posts:
    8,226
    Hey we dont have any examples of this yet. The plan is to do a deeper integration with TMP in the future. For now it should be similiar to the UI Text example. Just hook up the UnityEvents.
     
    zhuxianzhi likes this.
  3. kcoiscou

    kcoiscou

    Joined:
    Aug 15, 2015
    Posts:
    1
    This is the same example code as the documentation modified to work with TMPro Dropdown.

    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. using UnityEngine.Localization.Settings;
    5. using TMPro;
    6.  
    7. public class LocaleDropdown : MonoBehaviour
    8. {
    9.     public TMP_Dropdown dropdown;
    10.  
    11.     IEnumerator Start()
    12.     {
    13.      
    14.         // Wait for the localization system to initialize, loading Locales, preloading etc.
    15.         yield return LocalizationSettings.InitializationOperation;
    16.      
    17.         // Generate list of available Locales
    18.         var options = new List<TMP_Dropdown.OptionData>();
    19.         int selected = 0;
    20.         for (int i = 0; i < LocalizationSettings.AvailableLocales.Locales.Count; ++i)
    21.         {
    22.             var locale = LocalizationSettings.AvailableLocales.Locales[i];
    23.          
    24.             if (LocalizationSettings.SelectedLocale == locale)
    25.                 selected = i;
    26.             options.Add(new TMP_Dropdown.OptionData(locale.name));
    27.         }
    28.         dropdown.options = options;
    29.  
    30.         dropdown.value = selected;
    31.         dropdown.onValueChanged.AddListener(LocaleSelected);
    32.     }
    33.  
    34.     static void LocaleSelected(int index)
    35.     {
    36.         LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales[index];
    37.     }
    38. }
     
    karl_jones likes this.