64 lines
1.3 KiB
C#
64 lines
1.3 KiB
C#
using System.Collections.Generic;
|
|
using I2.Loc;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class LanguageWidget : MonoBehaviour
|
|
{
|
|
public List<GameObject> objectsToInform = new List<GameObject>();
|
|
|
|
private Dropdown dropdown;
|
|
|
|
private void Start()
|
|
{
|
|
InitList();
|
|
}
|
|
|
|
private void OnEnable()
|
|
{
|
|
if ((bool)dropdown)
|
|
{
|
|
RefreshCurrentValue();
|
|
}
|
|
}
|
|
|
|
private void InitList()
|
|
{
|
|
dropdown = GetComponent<Dropdown>();
|
|
dropdown.options.Clear();
|
|
dropdown.options.Capacity = 0;
|
|
for (int i = 0; i < LocalizationManager.GetTermData("GUI/OPTIONS_LANGUAGE_NAME").Languages.Length; i++)
|
|
{
|
|
dropdown.options.Add(new Dropdown.OptionData(LocalizationManager.GetTermData("GUI/OPTIONS_LANGUAGE_NAME").Languages[i]));
|
|
}
|
|
RefreshCurrentValue();
|
|
}
|
|
|
|
private void RefreshCurrentValue()
|
|
{
|
|
int num = 0;
|
|
foreach (string allLanguage in LocalizationManager.GetAllLanguages())
|
|
{
|
|
if (allLanguage == LocalizationManager.CurrentLanguage)
|
|
{
|
|
break;
|
|
}
|
|
num++;
|
|
}
|
|
dropdown.value = num;
|
|
dropdown.RefreshShownValue();
|
|
}
|
|
|
|
public void UpdateValue()
|
|
{
|
|
LocalizationManager.CurrentLanguage = LocalizationManager.GetAllLanguages()[dropdown.value];
|
|
foreach (GameObject item in objectsToInform)
|
|
{
|
|
if (item.activeInHierarchy)
|
|
{
|
|
item.SendMessage("LanguageChanged");
|
|
}
|
|
}
|
|
}
|
|
}
|