/// <summary> /// 得到文件夹下所有语言名,经测试ipad不能搜索目录 /// </summary> //void GetListLanguageName() //{ // DirectoryInfo folder = new DirectoryInfo("Assets/Resources/DB/Localization"); // foreach (DirectoryInfo next in folder.GetDirectories()) // { // listLanguageName.Add(next.Name); // //Debuger.LogWarning("GetListLanguageName name" + next.Name); // } //} /// <summary> /// 必须放在LoadLanguageName后 /// </summary> /// <param name="language"></param> //void LoadFont(string language) //{ // Debuger.Log("LoadFont==" + language); // ReplacementFont = Resources.Load("UI/font/ChineseFont26", typeof(Font)) as Font; // if (ReferenceFont == null) // { // ReferenceFont = Resources.Load("UI/font/Font_3_7", typeof(Font)) as Font; // } // ReferenceFont.replacement = ReplacementFont; //} /// <summary> /// 加载和某个语言相关的所有本地化文档 /// </summary> /// <param name="language"></param> void LoadAllLocalizations(string language) { //string file = "DB/Localization/" + curLanguage; //XmlElement rootEle = CXmlRead.GetRootElement("DB/Localization/LocalizationFileName"); XmlDocument xmlDoc = new XmlDocument(); TextAsset textAsset = (TextAsset)Resources.Load("NetRes/DB/Localization/LocalizationFileName", typeof(TextAsset)); //GameRes res = new GameRes("NetRes/DB/Localization/LocalizationFileName", GameRes.eCatchType.CT_None); //res.m_eCatchType = GameRes.eCatchType.CT_None; //res = ResourcesManager.LoadObj(res); //TextAsset textAsset = (TextAsset)res.m_Object; if (textAsset == null) { Debuger.LogError("Load LoadLanguageName DB Failed!"); return; } //Debuger.Log("DB/Localization/LocalizationFileName----------------"); xmlDoc.Load(new StringReader(textAsset.text)); XmlElement xmlRoot = xmlDoc.DocumentElement; foreach (XmlNode node in xmlRoot.ChildNodes) { if (node.Name == "row") { CXmlRead xmlRead = new CXmlRead(node as XmlElement); string name = xmlRead.Str("name"); string strPath = "NetRes/DB/Localization/" + curLanguage + "/" + name; Debuger.Log(strPath); LoadFile(name, strPath); } } //UIRoot.Broadcast("OnLocalize", this); //OnChangeLanguage(); }
void LoadFile(string name, string path) { Debuger.Log("-----------------------------load file name=" + path); Dictionary <string, string> texts = new Dictionary <string, string>(); // XmlElement rootEle = CXmlRead.GetRootElement(path); XmlDocument xmlDoc = new XmlDocument(); TextAsset textAsset = (TextAsset)Resources.Load(path, typeof(TextAsset)); //GameRes res = new GameRes(path, GameRes.eCatchType.CT_None); //res = ResourcesManager.LoadObj(res); //TextAsset textAsset = (TextAsset)res.m_Object; if (textAsset == null) { Debuger.LogError("Load LoadLanguageName DB Failed! path=" + path); return; } xmlDoc.Load(new StringReader(textAsset.text)); XmlElement xmlRoot = xmlDoc.DocumentElement; if (xmlRoot == null) { Debuger.LogWarning("LoadFile fail:" + path); return; } foreach (XmlNode node in xmlRoot.ChildNodes) { if (node.Name == "row") { CXmlRead xmlRead = new CXmlRead(node as XmlElement); string id = xmlRead.Str("id"); string text = xmlRead.Str("text"); if (texts.ContainsKey(id)) { Debuger.LogWarning("duplicate record id name:" + name + "id:" + id); continue; } texts.Add(id, text); //Debuger.LogWarning("GetListLanguageName" + text); } } dicLocalLanguages.Add(name, texts); }