コード例 #1
0
        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));
        }
コード例 #2
0
 static void ReadElements(XmlReader reader, SmartCultureInfoCollection newCollection)
 {
     while (reader.Read())
     {
         if (reader.NodeType == XmlNodeType.Element && reader.Name == "CultureInfo")
         {
             ReadData(reader, newCollection);
         }
     }
 }
コード例 #3
0
        // 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));
        }
コード例 #4
0
	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;
	}
コード例 #5
0
        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);
        }
コード例 #6
0
        /// <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));
        }