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中找。。。。。。。。。。。。。。。。。。
具体方法:见留言。。。。。。
代码太烂,勿转载。。。。
版权声明:本文为博主原创文章,未经博主允许不得转载。