Make your own free website on Tripod.com


用 Microsoft Visual C++ 5.0 中文化英文軟體
劉 嘉

摘取資源
準備編輯資源

編輯對話框(Dialog)

編輯選單(Menu)

翻譯字串表(String Table)

常見問題

  當您拿到一個好的英文軟體時,您是否被滿屏難懂的英文所困擾呢 ? 於是您會使用如「東方快車98」或「即時中文化專家98」等高水平的英漢翻譯軟體,但使用這些英漢翻譯軟體時很不方便,比如首先要啟動翻譯軟體,使用時記憶體不夠,與其他軟體衝突,翻譯不夠準確或翻譯軟體價格太貴等等。這時您會想這軟體若是中文版的,那該有多好 ! 要解決這個問題,只有將英文軟體進行中文化,從而擺脫對英漢翻譯軟體的依靠。「中文化」軟體可以稱得上是高科技了,但卻不難,只是較繁,本文是個中文化實例,有興趣的讀者不妨跟著我試一試。
  目前大多數的軟體的操作界面和訊息都是寫在程式中的,這些訊息稱為「資源(resource)」,一般這些資源都放在.exe或.dll檔案中。所以我們只要把.exe或.dll檔案中的資源摘取出來,就可以輕易地將訊息翻譯成中文。而Visual C++中的資源編輯器(Resource Edit)可以將一個已經編譯完成的.exe或.dll檔案中的資源摘取出來讓我們編輯。
  本文介紹用Microsoft Visual C++ 5.0中文化英文軟體的方法,是通用的,這裡我以Ulead(友立)公司出品的字型特效軟體主程式xara3din.exe為例,介紹中文化英文軟體的方法,主要分以下幾個部分:
  * 摘取資源
  * 準備編輯資源
  * 編輯對話框 (Dialog)
  * 編輯選單 (Menu)
  * 翻譯字串表 (String Table)
  * 常見問題
  使用前要注意的是:
  1. 要把Visual C++系統中的Appwzcht.dll檔案,複製到您安裝 Visual C++的目錄下。
  2. 必須在Windows NT下才可以將編輯過的資源存回到原來的.exe或.dll檔案中,Windows 95 可以編輯,但是無法存回去!

摘取資源
  首先,開啟Visual C++,本人使用的是5.0 版本。使用File→Open...開啟要中文化的.exe 或.dll檔案,必須注意的是,Open as...的地方要選擇Resources,如圖。

Hanhua1.jpg (5578 字節)

 
準備編輯資源

開啟之後,視窗中顯示的便是這個程式的resource,其中包括了各種圖形使用界面的資源(如圖2),而我們需要編輯的是界面中的文字,如對話框、選單和字串表等。

Hanhua2.jpg (5187 字節)

在開始翻譯以前,要先修改語系和編碼,否則翻譯過的中文字會變成亂碼,就前功盡棄了!按一下「CABINET」檔案夾旁邊的加號,開啟檔案夾。
  滑鼠雙擊101[English(U.K.)]開啟「CABINET」的內容,雙擊Block Header的那一行,把 Language ID改為Chinese (Taiwan),如圖3,然後關閉對話框,再關閉「CABINET」內容視窗。
  接下來點選101[English (U.K.)]讓它成為選取狀態,按滑鼠右鍵,選擇Properties,然後把Language的地方設成Chinese,如圖4。
  以後每編輯一項,都要做這個動作,把Properties裡的Language設成Chinese。但是在做這個動作以前,必須先雙擊該項目開啟內容,然後關閉,再來設定Properties,否則有可能設定語系後便無法開啟內容編輯。

Hanhua3.jpg

編輯對話框(Dialog)
  按一下對話框(Dialog)檔案夾旁邊的加號,開啟檔案夾會出現一系列的對話框項目,每一個項目是一個對話框。
  在編輯以前您要先改變每一個對話框的語系,但在改變語系之前,也必須先開啟它(雙擊該項目)然後關閉,以避免改變語系後無法開啟編輯。
  這麼多對話框一個一個開啟關閉非常麻煩,所以可以先選取全部的對話框項目(滑鼠拖曳選取或按住Shift再點選頭和尾的項目),然後按下Enter,就可以一次開啟全部的對話框內容(可能會有點慢,要看有多少對話框)。
  要一次全部關閉,選擇Visual C++下拉選單的Windows→Windows...,它會列出所有的視窗,選擇所有剛剛開啟的對話框視窗(字尾有[Dialog]字的),然後按下Close Window(s),就可以一次全部關閉。注意別把所有的視窗連同程式本身的視窗都關閉了。最後按下OK關閉預視視窗。
  趁著這些項目都還被選取的時候,按下滑鼠右鍵,選擇Properties,然後把Language設成Chinese,就可以一次把所有的對話框的語系都改了,多方便!
  接下來要做的就是一個一個分別去修改對話框的內容(雙擊該項目開啟內容),把訊息翻譯成中文,再關閉。
  在編輯內容的時候,要編輯哪一個字串,就用滑鼠雙擊它開啟訊息內容,然後把英文字串翻譯成中文。

  某些英文字串前可能會有&這個符號,例如: &Install,在I前面有&,對話框會把I加上底線,表示這是一個快速鍵。但是我們無法在中文字前加&,所以就把&Install翻譯成「安裝(&I)」,保留&I這個快速鍵,若是Brow&ser...就翻譯成「瀏覽(&s)...」,依此類推。快速鍵不一定要有,有時為了美觀起見可以省略,但若省略快速鍵就無法用鍵盤操作程式,只能用滑鼠。

  有一些比較特別的字串,例如: Static,看起來不像是訊息的,就不要去翻譯或改變它,因為它很可能是程式中傳遞的參數或記號,這得靠您自己去判斷。
  有時字串長度可能很長或很短,以致於對話框位置不合適或不好看,為了美觀起見,您可以自行調整位置或大小。
  
編輯選單(Menu)
  編輯選單(Menu)的方法跟編輯對話框的方法很類似,按一下Menu檔案夾旁邊的加號,開啟檔案夾會出現一系列的選單項目,每一個項目是一個選單。
  在編輯之前也是一樣要修改語系,修改語系的方式跟對話框是一樣的,千萬不要忘記修改,否則辛辛苦苦翻譯好的中文字串會變成亂碼,就要全部重來了!一個一個修改嫌麻煩,同樣可以整批一起修改。
  雙擊一個選單的項目,開啟選單內容開始編輯翻譯,要翻譯哪一個字串就雙擊哪一個字串。選單一定都有快速鍵,盡量全部保留。
  字串中有一些特殊符號,例如: \t(Tab)、\n(換行),就把它保留下來,翻譯訊息的部分即可,力求和原來的程式差不多。
  選單的訊息通常都有一定的規律,您可以參考其他的中文軟體來翻譯。不要翻譯得太特殊,以免失去視窗程式界面的一致性,別人使用會不方便。
  
翻譯字串表(String Table)
  最後就是要翻譯字串表(String Table)了,這可能是最辛苦的一個部份,因為這裡要翻譯的東西最多。
  按一下String Table檔案夾旁邊的加號,開啟檔案夾會出現字串表,通常只有一個項目。在翻譯前要先修改語系,不要忘記了!
  還是一樣,要翻譯哪一個字串就雙擊哪一個字串。快速鍵、特殊符號、參數字串最好都完整地保留下來。
  全部都翻譯完成後,按下保存圖示按鈕就可以將翻譯完成的資源存回到原程式中了,您再去執行那個程式,會發現一切都不一樣了。好好享受自己的成果您!
  
常見問題
  ■ 當我翻譯完成要保存檔案的時候,Windows 出現「cannot save file,cannot update resource in executable」,並且不讓我保存,為什麼?
  Visual C++要在Windows NT的環境下才能把修改後的資源存回到原程式中,在 Windows 95下不行,所以會出現這個訊息。
  ■ 我翻譯好後也保存檔案了,但是執行程式時,中文字全變成亂碼了,為什麼呢?
  因為您在翻譯之前沒有修改語系,所以中文字就變成亂碼了。
  ■ 我剛翻譯完一個項目後才發現忘記修改它的語繫了,怎麼辦,難道只能重來嗎?
  這時有一個方法可以試試,先不要修改語系,開啟該項目,確定中文都還沒變亂碼。不要關閉「項目內容」視窗,同時切換到主視窗去修改語系,關閉修改語系的對話框,再關閉項目內容視窗。這個方法不一定能成功,但可以試一下,您再次開啟項目內容,如果中文沒有變亂碼,就表示成功了!
  ■ 修改語系後,卻無法開啟項目的內容來編輯,怎麼回事?
  在修改語系之前,應該先開啟一次該項目,關閉後再修改,才能保證不會發生這種情況。

(作者單位: 上海醫科大學華山醫院計算中心)

 

 



回教學