最近项目需要做一个双语的网站,需要将对资源文件进行翻译,在vs里翻译感觉不够方便,参考SimpleResxEditor,自己写了个资源文件编辑助手,自己DIY的才是最好用的,呵呵,软件界面:
使用方法:
实现思路:
1.资源文件对应的实体
namespace ResxEditor { public class ResourceItem { public ResourceItem() { } public ResourceItem(int id, string key, string value, string comment) { this.ID = id; this.Key = key; this.Value = value; this.Comment = comment; } public int ID { get; set; } public string Key { get; set; } public string Value { get; set; } public string Comment { get; set; } } }
2.读取资源文件的方法
/// <summary> /// 读取资源文件 /// </summary> /// <returns></returns> private List<ResourceItem> GetDicList() { List<ResourceItem> itemList = new List<ResourceItem>(); ResXResourceReader rsxResource = new ResXResourceReader(resourceFilePath); rsxResource.UseResXDataNodes = true; AssemblyName[] referencedAssemblies = Assembly.GetExecutingAssembly().GetReferencedAssemblies(); IDictionaryEnumerator enumerator = rsxResource.GetEnumerator(); int i = 0; while (enumerator.MoveNext()) { DictionaryEntry current = (DictionaryEntry)enumerator.Current; ResXDataNode node = (ResXDataNode)current.Value; string strKey = node.Name; //资源项名 string strValue = node.GetValue(referencedAssemblies).ToString();//值 string strComment = node.Comment; //注释 ResourceItem item = new ResourceItem(i, strKey, strValue, strComment); itemList.Add(item); i++; } return itemList; }3.写入资源文件的方法
private void BtnUpdate_Click(object sender, EventArgs e) { LblResult.Text = ""; //写入键值对 List<ResourceItem> itemList = GetDicList(); ResXResourceWriter rswt = new ResXResourceWriter(resourceFilePath); foreach (ResourceItem item in itemList) { if (string.Compare(item.Key, TxtKey.Text, true) == 0) { ResXDataNode node = new ResXDataNode(item.Key, TxtTranslate.Text.Trim());//将翻译写入Value node.Comment = TxtValue.Text;//将value写入注释 rswt.AddResource(node); } else { ResXDataNode node = new ResXDataNode(item.Key, item.Value); node.Comment = item.Comment; rswt.AddResource(node); } } rswt.Close(); rswt.Dispose(); LblResult.Text = "更新成功!"; LblResult.ForeColor = Color.Green; }
软件下载:http://download.csdn.net/detail/a497785609/4040724
源码下载:http://download.csdn.net/detail/a497785609/4040709