public static uint LanguageTypeToLanguageId(LanguageType t) { switch (t) { case LanguageType.Type_SimplifiedChinese: return(LanguageDefine.LanguageNameToLanguageId("SimplifiedChinese")); case LanguageType.Type_English: return(LanguageDefine.LanguageNameToLanguageId("English")); } return(0); }
//重建语言资源列表 public void LoadLanguageResourcesInventory() { //开始加载语言定义的资源清单 for (int i = 0; i < currentLanguageDefine.LanguageResourcesInventoryFileList.Count; i++) { XmlDocument ldoc = LoadResource_LanguageResourceXmlFile(currentLanguageDefine.LanguageResourcesInventoryFileList[i], LanguageDefine.GetCode(currentLanguageDefine.codeType)); if (ldoc == null) { throw new Exception("load Language xml Inventory file err!"); } BuildLanguageResourcesTable(ldoc); } }
//选择当前使用的语言,这是默认函数可重载 //默认使用LUA脚本控制语言的选择 public void SelectCurrentLanguage() { //如果当前语言是中文就用简体中文,否则只用英文 if (uniLuaResourcesScript == null) { throw new Exception("not have lua script object!"); } //首先需要建立传输表。把语言定义传到脚本里 LanguageDefine selLanguage = uniLuaResourcesScript.SelectCurrentLanguage(DefineLanguage, LoaclLanguage, SystemLanguage, LanguageDefineList); //没有选到.使用默认的,一般默认的都是英文 if (selLanguage.languageId == 0) { currentLanguageDefine = DefineLanguage; } else { currentLanguageDefine = selLanguage; } //保存一次选择的语言 LoaclLanguage = currentLanguageDefine; }
private void LoadLanguageDefine() { XmlDocument doc = LoadResource_XmlFile("LanguageDefine.xml"); if (doc == null) { throw new Exception("not define language!"); } XmlNode root = doc.SelectSingleNode("LanguageDefine"); XmlNodeList nodelist = root.SelectNodes("Language"); //foreach (XmlNode n in nodelist) for (int i = 0; i < nodelist.Count; i++) { XmlNode n = nodelist[i]; LanguageDefine def = new LanguageDefine(); def.languageName = n.Attribute("name"); def.languageId = LanguageDefine.LanguageNameToLanguageId(def.languageName); def.languageIndex = Convert.ToInt32(n.Attribute("typeindex")); def.languageSystemId = (SystemLanguage)Convert.ToInt32(n.Attribute("SystemId")); def.codeType = LanguageDefine.CodeNameToType(n.Attribute("code")); XmlNodeList lnlist = n.SelectNodes("LanguageResourcesInventory"); def.LanguageResourcesInventoryFileList = new List <string>(32); //foreach (XmlNode ln in lnlist) for (int j = 0; j < lnlist.Count; j++) { def.LanguageResourcesInventoryFileList.Add(lnlist[j].Attribute("filename")); } LanguageDefineList.Add(def.languageId, def); } //获得默认语言定义 uint defineLanguageId = (uint)FTLibrary.Command.FTUID.StringGetHashCode(root.Attribute("DefineLanguage")); if (!LanguageDefineList.TryGetValue(defineLanguageId, out DefineLanguage)) { throw new Exception("not find define language!"); } }
public bool FindLanguageDefine(uint languageId, out LanguageDefine def) { return(LanguageDefineList.TryGetValue(languageId, out def)); }
public bool FindLanguageDefine(LanguageType t, out LanguageDefine def) { return(FindLanguageDefine(LanguageTypeToLanguageId(t), out def)); }