using System; using System.Collections.Generic; using UnityEngine; namespace EasyTalk.Localization { /// /// A set of localizable languages. /// [CreateAssetMenu(fileName = "Localizable Language Set", menuName = "EasyTalk/Localization/Localizable Language Set", order = 4)] [Serializable] public class LocalizableLanguageSet : ScriptableObject { /// /// The list of localizable languages. /// [SerializeField] private List languages = new List(); /// /// Gets or sets the list of localizable languages. /// public List Languages { get { return languages; } set { languages = value; } } /// /// Finds and returns the LocalizableLanguage matching the specified language name or ISO-639 code, if available in the language set. /// /// The English, native, or alternative name for the language to retrieve, or the ISO-639 code. /// The LocalizableLanguage for the language specified, or null if none exists in the set. public LocalizableLanguage GetLanguage(string languageCodeOrName) { foreach (LocalizableLanguage language in languages) { if (language.LanguageCode.ToLower().Equals(languageCodeOrName.ToLower())) { return language; } if (language.EnglishName.ToLower().Equals(languageCodeOrName.ToLower())) { return language; } if (language.NativeName.Equals(languageCodeOrName)) { return language; } if (language.AltName.ToLower().Equals(languageCodeOrName.ToLower())) { return language; } } return null; } } }