123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using System;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- namespace I2.Loc
- {
- [AddComponentMenu("I2/Localization/Localize Dropdown")]
- public class LocalizeDropdown : MonoBehaviour
- {
- public void Start()
- {
- LocalizationManager.OnLocalizeEvent += this.OnLocalize;
- this.OnLocalize();
- }
- public void OnDestroy()
- {
- LocalizationManager.OnLocalizeEvent -= this.OnLocalize;
- }
- private void OnEnable()
- {
- if (this._Terms.Count == 0)
- {
- this.FillValues();
- }
- this.OnLocalize();
- }
- public void OnLocalize()
- {
- if (!base.enabled || base.gameObject == null || !base.gameObject.activeInHierarchy)
- {
- return;
- }
- if (string.IsNullOrEmpty(LocalizationManager.CurrentLanguage))
- {
- return;
- }
- this.UpdateLocalization();
- }
- private void FillValues()
- {
- Dropdown component = base.GetComponent<Dropdown>();
- if (component == null && I2Utils.IsPlaying())
- {
- return;
- }
- foreach (Dropdown.OptionData optionData in component.options)
- {
- this._Terms.Add(optionData.text);
- }
- }
- public void UpdateLocalization()
- {
- Dropdown component = base.GetComponent<Dropdown>();
- if (component == null)
- {
- return;
- }
- component.options.Clear();
- foreach (string term in this._Terms)
- {
- string translation = LocalizationManager.GetTranslation(term, true, 0, true, false, null, null);
- component.options.Add(new Dropdown.OptionData(translation));
- }
- component.RefreshShownValue();
- }
- public List<string> _Terms = new List<string>();
- }
- }
|