12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using UnityEngine;
- using UnityEngine.UI;
- namespace I2.Loc
- {
- [AddComponentMenu("I2/Localization/SetLanguage Dropdown")]
- public class SetLanguageDropdown : MonoBehaviour
- {
- #if UNITY_5_2 || UNITY_5_3 || UNITY_5_4_OR_NEWER
- void OnEnable()
- {
- var dropdown = GetComponent<Dropdown>();
- if (dropdown==null)
- return;
- var currentLanguage = LocalizationManager.CurrentLanguage;
- if (LocalizationManager.Sources.Count==0) LocalizationManager.UpdateSources();
- var languages = LocalizationManager.GetAllLanguages();
- // Fill the dropdown elements
- dropdown.ClearOptions();
- dropdown.AddOptions( languages );
- dropdown.value = languages.IndexOf( currentLanguage );
- dropdown.onValueChanged.RemoveListener( OnValueChanged );
- dropdown.onValueChanged.AddListener( OnValueChanged );
- }
-
- void OnValueChanged( int index )
- {
- var dropdown = GetComponent<Dropdown>();
- if (index<0)
- {
- index = 0;
- dropdown.value = index;
- }
- LocalizationManager.CurrentLanguage = dropdown.options[index].text;
- }
- #endif
- }
- }
|