漢化?莫要被這兩個字嚇到。工具
其實你也能夠漢化,跟着個人步驟來,你也能夠進行漢化,Let`s go!!!(大鳥飄過)佈局
這裏漢化的是微軟企業類庫的配置管理工具EntLibConfig.exe。固然,這裏的企業類庫是3.0版本的。spa
準備工做:.net
你須要下載Entprise Library,而後找到配置管理工具EntLibConfig.exe。命令行
將EntLibConfig.exe及其依賴的文件放置在D:\el目錄下3d
若是不想下載微軟企業類庫,也沒有關係,這裏的方法仍是適用的。code
首先看一下,要漢化的軟件界面:orm
漢化後的界面(部分):blog
1.第一步 反彙編EntLibConfig.exe文件資源
首先,在開始菜單中找到visual studio 命令行工具,而後進入,以下圖:
進入visual studio命令行工具後,輸入以下命令行:
d:
cd el
ildasm /out:el.il EntLibConfig.exe
第一行命令轉到d盤。
第二行命令,進入d:\el目錄
第三行調用ildasm反彙編器,併爲其傳遞兩個參數:/out:el.il EntLibConfig.exe。此時,ildasm反彙編器會將EntLibConfig.exe文件反彙編成il文件。此時你會在d:\el下發現以下文件:
這個文件中就包含了EntLibConfig中菜單的資源,換句話說,菜單中的英文字母都在這個文件裏,所以,咱們的目標就是找到這些英文單詞,而後一一替換成中文便可。
第二步:將.resource中的資源提取到一個文本文件中
注:微乳並無公開 .resources文件中的資源格式,所以要想讀取或者寫入,必須藉助於.net中的System.Resources.ResourceReader和System.Resources.ResourceWriter類。我已經將他們進行了封裝,而且造成一個名爲rsc的命令行工具。你可使用這個工具來將.resources文件中的資源提取到一個文本文件中,並能夠將這個文本文件中的資源在寫會到.resoruce文件。
在本文的最後,我將貼出這個工具的代碼。
首先,使用rsc命令行工具將.resoruce文件中的資源提取到一個文本文件中。輸入以下命令(複製):
rsc Microsoft.Practices.EnterpriseLibrary.Configuration.Console.MainForm.resources r r.txt
而後,.resource文件中的資源就被提取到了r.txt文本文件中。
而後,使用記事本打開r.txt文件,在記事本的查找一欄裏搜索Action,最終定位到第204行,以下圖所示:
這個&Action字符串就是菜單中的那個Action選項,只須要將其替換成中文便可。咱們將其替換爲「操做」,以下:
保存文件。
而後再次使用rsc命令行工具,將r.txt保存到Microsoft.Practices.EnterpriseLibrary.Configuration.Console.MainForm.resources中。請輸入以下命令:
rsc r.txt w Microsoft.Practices.EnterpriseLibrary.Configuration.Console.MainForm.resources
此時,r.txt中的資源已經被寫會到Microsoft.Practices.EnterpriseLibrary.Configuration.Console.MainForm.resources文件中。
第三步,從新編譯。
首先,使用ilasm編譯器將el.il從新編譯成exe文件。請輸入以下命令行:
ilasm /out:good.exe el.il
這個命令行調用ilasm編譯器,而後爲其傳遞兩個參數:/out:good.exe和el.il。ilasm編譯器將el.il文件編譯成good.exe。
如今,漢化已經完成。
打開good.exe,你會驚奇的發現Action已經被替換成了"操做",以下:
怎麼樣,是否是頗有成就感!
閱讀到此,相信你依然會有不少疑問,譬如我怎麼知道資源就在Microsoft.Practices.EnterpriseLibrary.Configuration.Console.MainForm.resources文件中,爲何第204行的那個Action就是菜單中的那個Action........這篇文章的目的不是讓你完全瞭解漢化,只是給你一個大概的思路。
上面用到了rsc工具。這個工具的代碼以下:
總結:
能夠先將要漢化的程序集,經過ildasm反彙編器將其反彙編,此時會生成一堆.il文件和.resource文件。你能夠在.resource文件中找到要替換的英文。
因爲.resource文件的內部結構時不公開的,可是能夠經過System.Resources.ResourceReader和System.Resources.ReousrceWriter來讀取和寫入.resource文件(經過研究這兩個類的源碼,也能夠知道.resoruce文件的內部佈局),固然,你可使用我封裝好的rsc工具來讀取和寫入.resource文件。
使用rsc文件將.resoruce文件中的資源提取到一個文本文件中,而後搜索要漢化的字符差,將其替換成中文,最後在使用rsc將其保存到源文件中。
到此爲止,漢化以基本完成。此時使用ilasm彙編器將生成的il文件從新編譯,漢化完成!!