123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- using System.Collections.Generic;
- using System.Xml;
- namespace OTSDataType
- {
- public struct StringRes
- {
- public int key;
- public string text;
- public string Description;
- public string DownList;
- }
- public class ResGroup
- {
- public int key;
- public string text = "";
- public string Description = "";
- public string DownList = "";
- public SortedDictionary<int, StringRes> mapRes = new SortedDictionary<int, StringRes>();
- }
- public class XmlResourceData
- {
- static XmlResourceData instance =new XmlResourceData();
- private SortedDictionary<int, ResGroup> resGroup = new SortedDictionary<int, ResGroup>();
- public XmlResourceData()
- {
- LoadStringFromXml();
- }
- public void GetStringByKey(int grpKey, int itmKey, ref string text, ref string des,ref string downlist)
- {
- text = resGroup[grpKey].mapRes[itmKey].text;
- des = resGroup[grpKey].mapRes[itmKey].Description;
- downlist = resGroup[grpKey].mapRes[itmKey].DownList;
- }
- public string GetStringByKey(int grpKey, int itmKey)
- {
- return resGroup[grpKey].mapRes[itmKey].text;
- }
- public string GetStringByKey(int itmKey)
- {
- return resGroup[0].mapRes[itmKey].text;
- }
- public string GetGroupTextByKey(int grpKey)
- {
- return resGroup[grpKey].text;
- }
- public void GetGroupTextByKey(int grpKey, ref string text, ref string des)
- {
- text = resGroup[grpKey].text;
- des = resGroup[grpKey].Description;
- }
- public void SetStringByKey(int grpkey, int itmkey, string value, string des)
- {
- StringRes sr = new StringRes();
- sr.text = value;
- sr.Description = des;
- resGroup[grpkey].mapRes[itmkey] = sr;
- }
- public bool LoadStringFromXml()
- {
- XmlDocument xml = new XmlDocument();
- xml.Load(".\\Resources\\XMLData\\LanguageDefine.xml");
- XmlNode root = xml.SelectSingleNode("Language");
- XmlNode root2 = root.SelectSingleNode("DefaultLanguage");
- string ss = root2.InnerText;
- XmlDocument doc1 = new XmlDocument();
- if (ss == "EN")
- {
- doc1.Load(".\\Resources\\XMLData\\ResourceForCpp\\ResourceForReport-EN.xml");//载入xml文件
- }
- else if (ss == "ZH")
- {
- doc1.Load(".\\Resources\\XMLData\\ResourceForCpp\\ResourceForReport-ZH.xml");//载入xml文件
- }
- root = doc1.SelectSingleNode("XMLData");
- root2 = root.SelectSingleNode("collection");
-
- XmlNodeList childlist = root2.ChildNodes;
- for (int i = 0; i < childlist.Count; i++)
- {
- int colkey = -1;
- if (childlist[i].Attributes["grpKey"] != null)
- {
- colkey = int.Parse(childlist[i].Attributes["grpKey"].Value);
- }
- string colText = "";
- if (childlist[i].Attributes["text"] != null)
- {
- colText = childlist[i].Attributes["text"].Value;
- }
- string colDes = "";
- if (childlist[i].Attributes["description"] != null)
- {
- colDes = childlist[i].Attributes["description"].Value;
- }
- ResGroup rg = new ResGroup();
- rg.key = colkey;
- rg.text = colText;
- rg.Description = colDes;
-
- XmlNodeList childlist2 = childlist[i].ChildNodes;
- for (int j = 0; j < childlist2.Count; j++)
- {
- StringRes sr = new StringRes();
- int key = int.Parse(childlist2[j].Attributes["itemKey"].Value);
- sr.key = key;
- sr.text = childlist2[j].Attributes["itemText"].Value;
- if (childlist2[j].Attributes["boDownList"] != null)
- {
- sr.DownList = childlist2[j].Attributes["boDownList"].Value;
- }
- else
- {
- sr.DownList = "空";
- }
- if (childlist2[j].Attributes["description"] != null)
- {
- sr.Description = childlist2[j].Attributes["description"].Value;
- }
- else
- {
- sr.Description = "空";
- }
- try
- {
- rg.mapRes[key] = sr;
- }
- catch (System.Exception ex)
- {
- // MessageBox.Show(ex.ToString());
- }
- }
- resGroup[colkey] = rg;
- }
- return true;
- }
-
- public static XmlResourceData GetInstance()
- {
- //static MultiLang instance;
- if (instance == null)
- {
- instance.LoadStringFromXml();
- }
-
- return instance;
- }
- }
- }
|