閱讀455 返回首頁    go 技術社區[雲棲]


Asp.net 資源文件翻譯助手

     最近項目需要做一個雙語的網站,需要將對資源文件進行翻譯,在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;
        }

軟件下載:https://download.csdn.net/detail/a497785609/4040724

源碼下載:https://download.csdn.net/detail/a497785609/4040709




最後更新:2017-04-02 22:16:10

  上一篇:go 任務管理器中的PID是什麼?怎麼查看?
  下一篇:go 清除頁麵緩存