大多數軟件的操作界面和信息都是寫在resource(資源)中的,所以,只要把exe文件或dll文件中的resource提取出來,就可以輕易地將信息翻譯成中文。而Vusial
C++中的資源編輯器可以將一個已經編譯完成的exe文件或dll文件中的resource提取出來進行編輯。如圖1所示,現在演示把這個英文項目漢化成圖2的過程。
建立Demo項目
單擊Visual C++File菜單中的New命令,選擇Project選項中的MFC
AppWizard(exe)圖標,鍵入Demo作為項目名字。單擊OK運行AppWizard,創建Demo項目。當指定項目選項時,在AppWizard的步驟1中選擇Single
Document按鈕,其余各步均采用默認設置項,產生如圖1的項目,現在對這個英文項目進行漢化處理。但處理前必須注意二個問題:
1.Visual C++允許你在建立MFC AppWizard程序時選擇不同的語系。在使用遠東語系支持DLL時(日語、朝鮮語和中文),需要支持雙字節的操作系統。這些DLL在缺省安裝時并沒有安裝,需要你自己動手來安裝。這些文件在Visual
C++光盤的\Bin\IDE目錄中(見下表):
例如,如果你想在你的軟件中支持中文,你可以把上面的appwzchs.dll復制到你安裝Vusial
C++的目錄下相同路徑的地方。
2.必須在WindowsNT下才可以將編輯過的resource存回到原本的exe文件(或dll文件)中,在Windows95中編輯過程一樣,但是無法存回去。
提取resource
首先,使用File>Open...打開要漢化的exe文件(或dll文件),必須注意的是Open
as的地方要選擇Resources。
打開之后,窗口中顯示的便是這個程序的resource,包括各種圖形使用界面的資源,其中需要編輯的是Dailog(對話框)、Menu(菜單)和String
Table(字串表)。
1.在開始翻譯以前,要先修改語系和編碼,否則翻譯過的中文字會變成亂碼。按一下Version項旁邊的加號,打開項會出現Version。
鼠標雙擊1[English(U.S.)]打開Version的內容,雙擊BlockHeader的那一行,把LanguageID改為中文,CodePage確定是Unicode沒有錯,關閉對話框,再關閉Version內容窗口。
2.接下來單擊1[English(U.S.)]讓它成為選取狀態,按鼠標右鍵,選擇Properties,然后把Language的地方設成Chinese(P.R.C)。
以后每編輯一項,也都要做這個動作,把Properties里的Language設成Chinese(P.R.C)。但是在做這個動作以前,必須先雙擊該項目打開內容,然后關閉再來設定Properties,否則有時設定語系后便無法打開內容編輯。
設定好后,就不會出現[English(U.S.)]的字樣。
編輯Dailog
按一下Dailog(對話框)項旁邊的加號,打開項會出現一系列的Dailog項目,每一個項目是一個對話框(對本例當然只有一個對話框)。
在編輯以前你要先改變每一個對話框的語系,但在改變語系之前,必須先打開它(雙擊該項目)然后關閉,以避免改變語系后無法打開編輯。
這么多對話框一個一個打開關閉非常麻煩,你可先選取全部的對話框項目,然后按下Enter,就可以一次打開全部的對話框內容。要一次全部關閉,選擇Vusial
C++下拉菜單的Windows>Windows...它會列出所有的窗口,選擇所有剛剛打開的對話框窗口(字尾有[Dialog]字的),然后按下Close
Window(s),就可以一次全部關閉。注意別把所有的窗口都關閉了。最后按下OK。
在這些項目都還被選取的時候,按下鼠標右鍵,選擇Properties,然后把Language的地方設成Chinese(P.R.C)。就可以一次把所有的對話框的語系都改了。
接下來要做的就是一個一個分別去修改對話框的內容(雙擊該項目打開內容),把信息翻譯成中文,再關閉。
要編輯哪一個字串,就用鼠標雙擊它打開信息內容,然后把英文字串翻譯成中文。對英文字符前有&這個符號的,例如:&Help,在H前面有&,對話框會把H加上底線,表示這是一個快捷鍵。由于無法在中文字前加&,所以就把&Help翻譯成「幫助(&H)」,保留&H這個快捷鍵,若是Brow
&ser...就翻譯成「瀏覽(&s)...」,以此類推??旖萱I不一定要有,有時為了美觀起見可以省略,若省略快捷鍵就無法用鍵盤操作程序,只能用鼠標。
有一些比較特別的字串,例如:Static,看起來不像是信息的,就不要去翻譯或改變它,因為它很可能是程序中傳遞的參數或記號。有時字串長度可能太長或太短,以致于對話框位置不符合或不好看,為了美觀起見,你可以自行調整位置或大小??傊?,你此時可根據常規習慣自由發揮。
編輯Menu
編輯Menu(菜單)跟編輯Dialog的方法很類似,按一下Menu項旁邊的加號,打開項會出現一系列的Menu項目,每一個項目是一個菜單。
在編輯之前也是一樣要修改語系,修改語系的方式跟Dialog是一樣的,一個一個修改嫌麻煩,也可以整批一起修改。
雙擊一項菜單的項目,打開菜單內容開始編輯翻譯,要翻譯哪一個字串就雙擊哪一個字串。菜單一定都有快捷鍵,最好全部保留。
字串中有一些特殊符號,例如:t(Tab)、\n(換行),就把它保留下來,翻譯信息的部分力求和原本的程序一模一樣。
翻譯String Table
最后就是要翻譯String Table(字串表)了,這里要翻譯的東西最多。按一下String
Table項旁邊的加號,打開項會出現String Table,通常只會有一個項目。在翻譯前要先修改語系。
還是一樣,要翻譯那哪一個字串就雙擊哪一個字串??旖萱I、特殊符號、參數字串最好都完整的保留下來。
全部都翻譯完成后,按下存盤的圖標就可以將翻譯完成的resource存回到程序中,你再去執行那個程序,會出現圖2樣式?!?/p>