示例#1
0
    private static void DoLoadFile(LanguageFile file)
    {
        TextAsset xmlText = (TextAsset)Resources.Load("Translation/" + file.name);

        if (xmlText != null)
        {
            XmlDocument xml = new XmlDocument();
            xml.LoadXml(xmlText.text);

            XmlNodeList nodes = xml.GetElementsByTagName("message");

            for (int i = 0; i < nodes.Count; i++)
            {
                LanguageFile.LanguageMessage message = new LanguageFile.LanguageMessage();

                string id = nodes[i].Attributes["id"].Value;

                XmlNodeList childNodes = nodes[i].ChildNodes;

                for (int j = 0; j < childNodes.Count; j++)
                {
                    if (childNodes[j].LocalName == "language")
                    {
                        if (childNodes[j].Attributes["type"] != null)
                        {
                            if (childNodes[j].Attributes["type"].Value == "PT")
                            {
                                if (!message.messageByLang.ContainsKey("PT"))
                                {
                                    message.messageByLang.Add("PT", childNodes[j].InnerXml);
                                }
                            }
                            else if (childNodes[j].Attributes["type"].Value == "EN")
                            {
                                if (!message.messageByLang.ContainsKey("EN"))
                                {
                                    message.messageByLang.Add("EN", childNodes[j].InnerXml);
                                }
                            }
                            else if (childNodes[j].Attributes["type"].Value == "ES")
                            {
                                if (!message.messageByLang.ContainsKey("ES"))
                                {
                                    message.messageByLang.Add("ES", childNodes[j].InnerXml);
                                }
                            }
                            else if (childNodes[j].Attributes["type"].Value == "PT_PT")
                            {
                                if (!message.messageByLang.ContainsKey("PT_PT"))
                                {
                                    message.messageByLang.Add("PT_PT", childNodes[j].InnerXml);
                                }
                            }
                        }
                        else
                        {
                            message.defaultMessage = childNodes[j].InnerXml;
                        }

                        if (message.defaultMessage == null || message.defaultMessage == "")
                        {
                            if (message.messageByLang.ContainsKey("EN"))
                            {
                                message.defaultMessage = message.messageByLang["EN"];
                            }
                            else
                            {
                                foreach (KeyValuePair <string, string> messageByLang in message.messageByLang)
                                {
                                    message.defaultMessage = messageByLang.Value; break;
                                }
                            }
                        }
                    }
                }

                if (!(id == null || id == ""))
                {
                    file.messages.Add(id, message);
                }
            }

            file.isLoaded = true;
        }
        else
        {
            Debug.Log("Fail on loading \'Translation/" + file.name + "\'");
        }
    }
示例#2
0
    private static void DoLoadFile(LanguageFile file)
    {
        TextAsset xmlText = (TextAsset)Resources.Load("Translation/" + file.name);

        if (xmlText != null)
        {
            XmlDocument xml = new XmlDocument();
            xml.LoadXml(xmlText.text);

            XmlNodeList nodes = xml.GetElementsByTagName("message");

            for (int i = 0; i < nodes.Count; i++)
            {
                LanguageFile.LanguageMessage message = new LanguageFile.LanguageMessage();

                string id = nodes[i].Attributes["id"].Value;

                XmlNodeList childNodes = nodes[i].ChildNodes;

                for (int j = 0; j < childNodes.Count; j++)
                    if (childNodes[j].LocalName == "language")
                    {

                        if (childNodes[j].Attributes["type"] != null)
                        {
                            if (childNodes[j].Attributes["type"].Value == "PT")
                            {
                                if (!message.messageByLang.ContainsKey("PT"))
                                    message.messageByLang.Add("PT", childNodes[j].InnerXml);
                            }
                            else if (childNodes[j].Attributes["type"].Value == "EN")
                            {
                                if (!message.messageByLang.ContainsKey("EN"))
                                    message.messageByLang.Add("EN", childNodes[j].InnerXml);
                            }
                            else if (childNodes[j].Attributes["type"].Value == "ES")
                            {
                                if (!message.messageByLang.ContainsKey("ES"))
                                    message.messageByLang.Add("ES", childNodes[j].InnerXml);
                            }
                            else if (childNodes[j].Attributes["type"].Value == "PT_PT")
                            {
                                if (!message.messageByLang.ContainsKey("PT_PT"))
                                    message.messageByLang.Add("PT_PT", childNodes[j].InnerXml);
                            }
                        } else message.defaultMessage = childNodes[j].InnerXml;

                        if (message.defaultMessage == null || message.defaultMessage == "")
                        {
                            if (message.messageByLang.ContainsKey("EN"))
                                message.defaultMessage = message.messageByLang["EN"];
                            else
                                foreach (KeyValuePair<string, string> messageByLang in message.messageByLang)
                                { message.defaultMessage = messageByLang.Value; break; }
                        }

                    }

                if (!(id == null || id == ""))
                {
                    file.messages.Add(id, message);
                }
            }

            file.isLoaded = true;
        }
        else
            Debug.Log("Fail on loading \'Translation/" + file.name + "\'");
    }