using UnityEngine; using System.Collections; using UIWidgets; namespace UIWidgetsSamples { /// /// Sample script how to add localization for ListViewIcons, ListViewCustom, TileView, TreeView. /// public class LocalizationSample : MonoBehaviour { [SerializeField] ListViewIcons targetListViewIcons; [SerializeField] ListView targetListView; public ListViewIcons TargetListViewIcons { get { if (targetListViewIcons==null) { targetListViewIcons = GetComponent(); } return targetListViewIcons; } } void Start() { TargetListViewIcons.Start(); Localize(); // Add callback on language change, if localization system support this. //LocalizationSystem.OnLanguageChange += Localize; //LocalizationSystem.OnLanguageChange.AddListener(Localize); } public void Localize() { // get localized strings, instead GetLocalizedString() use similar function from localization system TargetListViewIcons.DataSource.ForEach(x => x.LocalizedName = GetLocalizedString(x.Name)); // update items in ListViewIcons // - or - // update ListViewCustom, TileView, TreeViewCustom // don't need to call for TreeView or simple ListView TargetListViewIcons.UpdateItems(); } string GetLocalizedString(string str) { return str; } void OnDestroy() { // Remove callback on language change, if localization system support this. //LocalizationSystem.OnLanguageChange -= Localize; //LocalizationSystem.OnLanguageChange.RemoveListener(Localize); } /* ObservableList originalList; void StartListView() { targetListView.Start(); // keep original list originalList = targetListView.DataSource; Localize(); } public void LocalizeListView() { targetListView.DataSource = originalList.Convert(x => GetLocalizedString(x)); } */ } }