using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using System.Collections; namespace TraslateXml { class Program { static void Main(string[] args) { if (args.Length < 2) Console.WriteLine("请输入正确的格式:\nTranslateXml <FullPath\\>en.xml <FullPath\\>zh.xml."); else { Program ts = new Program(); ts.Traslate(args[0], args[1]); } } private void Traslate(string en, string zh) { SortedList zhlist = new SortedList(); XmlDocument zhxml = new XmlDocument(); zhxml.Load(zh); XmlNodeList zhNodeList = zhxml.SelectSingleNode("StringBundle").ChildNodes; foreach (XmlNode xn in zhNodeList) { if (xn.Attributes != null && xn.Attributes["id"] != null && xn.Attributes["id"].Value != null) zhlist.Add(xn.Attributes["id"].Value, xn.InnerText); } XmlDocument enxml = new XmlDocument(); enxml.Load(en); XmlNodeList enNodeList = enxml.SelectSingleNode("StringBundle").ChildNodes; foreach (XmlNode xn in enNodeList) { if (xn.Attributes != null && xn.Attributes["id"] != null && xn.Attributes["id"].Value != null) { if (zhlist.GetKeyList().Contains(xn.Attributes["id"].Value.ToString())) xn.InnerText = zhlist[xn.Attributes["id"].Value.ToString()].ToString(); } } enxml.Save(en); } } }
原理很简单,找到qq新版本中语言包文件就是那个1033和2052之类的文件夹,里面xml文件就是对应的界面中文字文件,利用代码将对应2052(中文)文件中的节中的数值复制到1033(英文)中同名文件中的相同节点数值。
没有对错误进行检测,只是作为笔记使用。这样可以使用QQ汉化的国际版.
其中2052文件夹去最新的QQ2013中找。。。。。。。。。。。。。。。。。。
具体方法:见留言。。。。。。
代码太烂,勿转载。。。。