static void ReadData(XmlReader reader, SmartCultureInfoCollection newCollection) { string languageCode = string.Empty; string englishName = string.Empty; string nativeName = string.Empty; bool isRightToLeft = false; //Read the child nodes if (reader.ReadToDescendant("languageCode")) { languageCode = reader.ReadElementContentAsString(); } if (reader.ReadToNextSibling("englishName")) { englishName = reader.ReadElementContentAsString(); } if (reader.ReadToNextSibling("nativeName")) { nativeName = reader.ReadElementContentAsString(); } if (reader.ReadToNextSibling("isRightToLeft")) { isRightToLeft = reader.ReadElementContentAsBoolean(); } newCollection.AddCultureInfo(new SmartCultureInfo(languageCode, englishName, nativeName, isRightToLeft)); }
static void ReadElements(XmlReader reader, SmartCultureInfoCollection newCollection) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "CultureInfo") { ReadData(reader, newCollection); } } }
// menshikh: // Implemented specially for use in inspector editor scripts to avoid necessity of LanguageManager instance. public static SmartCultureInfoCollection GetAvailableLanguageCultures() { TextAsset availableCulturesXML = Resources.Load(LanguageRuntimeData.AvailableCulturesFilePath()) as TextAsset; if (availableCulturesXML == null) { Debug.LogError("Could not load available cultures! No such file!"); return(null); } return(SmartCultureInfoCollection.Deserialize(availableCulturesXML)); }
bool LoadAvailableCultures() { TextAsset availableCulturesXML = Resources.Load(LanguageRuntimeData.AvailableCulturesFilePath()) as TextAsset; if(availableCulturesXML == null) { Debug.LogError("Could not load available languages! No such file!"); return false; } availableLanguages = SmartCultureInfoCollection.Deserialize(availableCulturesXML); return true; }
public static SmartCultureInfoCollection Deserialize(TextAsset xmlFile) { if (xmlFile == null) { return(null); } SmartCultureInfoCollection newCollection = new SmartCultureInfoCollection(); using (StringReader stringReader = new StringReader(xmlFile.text)) { using (XmlReader reader = XmlReader.Create(stringReader)) { ReadElements(reader, newCollection); } } return(newCollection); }
/// <summary> /// Allows to get localized text by specified key in editor mode. /// </summary> public static string GetTextValueInEditor(string key, string languageCode) { // load language data TextAsset languageData = Resources.Load(LanguageRuntimeData.LanguageFilePath(languageCode)) as TextAsset; if (languageData == null) { Debug.LogError("Failed to load language: " + languageCode); return(null); } if (string.IsNullOrEmpty(languageData.text)) { Debug.LogError("Failed to load language with ISO-639 code. Data was null or empty"); return(null); } // load culture data SmartCultureInfoCollection availableLanguageCultures = GetAvailableLanguageCultures(); SmartCultureInfo cultureToLoad = availableLanguageCultures.cultureInfos.Find(info => info.languageCode == languageCode); if (cultureToLoad == null) { Debug.LogError("Failed to load language with ISO-639 code: " + languageCode + ". Unable to find a corresponding SmartCultureInfo"); return(null); } // create language handler LanguageDataHandler languageDataHandler = new LanguageDataHandler(); if (!languageDataHandler.Load(languageData.text)) { Debug.LogError("Failed to load data to language handler with ISO-639 code: " + languageCode); return(null); } languageDataHandler.LoadedCulture = cultureToLoad; return(languageDataHandler.GetTextValue(key)); }