用 Visual C++ 5.0將軟體中文化
擷取 resource
準備編輯 resource
編輯 Dailog
編輯 Menu
翻譯 String Table
常見問題
目前大多數的軟體的操作介面和訊息都是寫在
resource (資源)中,所以我們只要把 exe 檔或 dll 檔中的 resource
擷取出來,就可以輕易的將訊息翻譯修改成中文。而 Visual C++
中的資源編輯器 (Resource Edit) 可以將一個已經編譯完成的 exe 檔或 dll
檔中的 resource 擷取出來讓我們編輯。
使用前要注意的是:只有在 Windows NT
下才可以將編輯過的 resource 存回到原本的 exe 檔 (或 dll 檔) 中,Windows95
可以編輯,但是無法存回去!!
▽擷取 resource
首先,開啟 Visual C++,我所使用的是 5.0 版本。使用 File → Open...
開啟要中文化的 exe 檔 (或 dll 檔),必須注意的是,Open as...
的地方要選擇 Resources,如下圖:

▽準備編輯 resource
開啟之後,視窗中顯示的便是這個程式的 resource,包括了各種圖形使用介面的資源,其中我們需要編輯的是
Dailog (對話框)、Menu (選單) 和 String Table
(字串表)。
在開始翻譯以前,要先修改語系和編碼,否則翻譯過的中文字會變成亂碼,就前功盡棄了!!
按一下 Version
資料夾旁邊的加號,打開資料夾會出現 Version。

滑鼠雙擊 1[English (U.S.)] 開啟 Version
的內容,雙擊 Block Header 的那一行,把 Language ID 改為中文,Code
Page 確定是 Unicode 沒有錯,就可以關閉對話框,再關閉
Version 內容視窗。

接下來點選
1[English (U.S.)] 讓它成為選取狀態,按滑鼠右鍵,選擇 Properties,然後把
Language 的地方設成 Chinese (Taiwan)。
以後每編輯一項東西,也都要做這個動作,把
Properties 裡的 Language 設成 Chinese (Taiwan)。但是在做這個動作以前,被須先雙擊該項目開啟內容,然後關閉再來設定
Properties,否則有時設定語系後便無法開啟內容編輯。
設定好後,就不會出現 [English (U.S.)]
的字樣。
▽編輯 Dailog
按一下 Dailog (對話框)資料夾旁邊的加號,打開資料夾會出現一系列的
Dailog 項目,每一個項目是一個對話框。
在編輯以前你要先改變每一個對話框的語系,但在改變語系之前,必須先開啟它
(雙擊該項目) 然後關閉,以避免改變語系後無法打開編輯。
這麼多對話框一個一個打開關閉非常的麻煩,所以小正正教你一招,先選取全部的對話框項目
(滑鼠拖曳選取或按住 Shift 再點選頭和尾的項目),然後按下 Enter,就可以一次打開全部的對話框內容
(可能會有點慢,要看有多少對話框)。
要一次全部關閉,選擇 Visual C++ 下拉選單的 Windows
→ Windows...,它會列出所有的視窗,選擇所有剛剛開啟的對話框視窗
(字尾有 [Dialog] 字的),然後按下 Close Window(s),就可以一次全部關閉啦!!
注意別把所有的視窗都關閉了,連程式本身的視窗都關閉。最後按下
OK 關閉檢視視窗。
趁著這些項目都還被選取的時候,按下滑鼠右鍵,選擇
Properties,然後把 Language 的地方設成 Chinese
(Taiwan)。就可以一次把所有的對話框的語系都改了,多方便!!
接下來要做的就是一個一個分別去修改對話框的內容
(雙擊該項目開啟內容),把訊息翻譯成中文,再關閉。
在編修內容的時候,要編輯那一個字串,就用滑鼠雙擊它開啟訊息內容,然後把英文字串翻譯成中文。

某些英文字元前可能會有 &
這個符號,例如:&Help,在 H 前面有 &,對話框會把 H
加上底線,表示這是一個快速鍵。但是我們無法在中文字前加 &,所以就把
&Help 翻譯成「說明(&H)」,保留 &H 這個快速鍵,若是
Brow&ser... 就翻譯成「瀏覽(&s)...」,以此類推。快速鍵不一定要有,有時為了美觀起見可以省略,若省略快速鍵就無法用鍵盤操作程式,只能用滑鼠。
有一些比較特別的字串,例如:Static,看起來不像是訊息的,就不要去翻譯或改變它,因為它很可能是程式中傳遞的參數或記號,你自己判斷囉!!
有時字串長度可能太長或太短,以致於對話框位置不符合或不好看,為了美觀起見,你可以自行調整位置或大小。
▽編輯 Menu
編輯 Menu (選單) 跟編輯 Dialog 的方法很類似,按一下 Menu
資料夾旁邊的加號,打開資料夾會出現一系列的 Menu
項目,每一個項目是一個選單。
在編輯之前也是一樣要修改語系,修改語系的方式跟
Dialog
是一樣的,千萬不要忘記修改,否則辛辛苦苦翻譯好的中文字串會變成亂碼,就要全部重來了!!
一個一個修改嫌麻煩,也是可以整批一起修改。
雙擊一項選單的項目,開啟選單內容開始編輯翻譯,要翻譯那一個字串就雙擊那一個字串。選單一定都有快速鍵,最好全部保留。
字串中有一些特殊符號,例如:\t (Tab)、\n (換行),就把它保留下來,翻譯訊息的部份就好,力求和原本的程式一模一樣,不要差太多。
選單的訊息通常都有一定的規律,你可以參考其他的中文軟體來翻譯,或是利用小正正的翻譯對照檔。不要翻譯的太特殊,就失去視窗程式介面的一致性,別人使用上會不方便。
▽翻譯 String Table
最後就是要翻譯 String Table (字串表)
了,這可能是最辛苦的一個部份,因為這邊要翻譯的東西最多。
按一下 String Table
資料夾旁邊的加號,打開資料夾會出現 String Table,通常只會有一個項目。在翻譯前要先修改語系,不要忘記了!!
還是一樣,要翻譯那一個字串就雙擊那一個字串。快速鍵、特殊符號、參數字串最好都完整的保留下來。
全部都翻譯完成後,按下單張磁片的圖示 就可以將翻譯完成的 resource
存回到程式中了,你再去執行那個程式,會發現一切都不一樣囉!!
好好享受自己的成果吧!!
▽常見問題
■ 我該到哪裡取得 Visual C++ 來使用?
Visual C++ 是微軟公司出的商業軟體,必須購買合法軟體使用。
■ 為什麼我開啟一個檔案的 resource,卻看不到 Dailog、Menu...呢?
並不是每一個 exe 或 dll 檔案的 resource
都完整的有這幾個項目,有些有、有些沒有,看原本的程式設計者如何設計。我們只要翻譯有的部份就好了!!
■ 當我翻譯完成要存檔的時候,Windows
出現下面的視窗,並且不讓我存檔,為什麼?

Visual C++ 要在 Windows NT
的環境下才能把修改後的 resource 存回到程式中,在 Windows95
下不行,所以會出現這個訊息。為什麼 95 下不行呢??
這就要去問問微軟了...。
■
我翻譯好後也存檔了,但是執行程式,中文字全變成亂碼了,為什麼呢?
因為你在翻譯之前沒有修改語系,所以中文字就變成亂碼了。
■
我剛翻譯完一個項目後才發現忘記修改它的語系了,怎麼辦,難道只能重來嗎?
這時有一個方法可以試試,先不要修改語系,開啟該項目,確定中文都還沒變亂碼。不要關閉項目內容這個視窗,同時切換到主視窗去修改語系,關閉修改語系的對話框,再關閉項目內容視窗。這個方式不一定能成功,你再次打開項目內容,如果中文沒有變亂碼,就表示成功囉!!
(替自己偷笑一下吧!! =^_^=)
■
修改語系後,卻無法開啟項目的內容來編輯,怎麼回事?
在修改語之前,應該先開啟一次該項目,關閉後再修改,才保證不會發生這種狀況。
◎ 有其他問題請寫信給小正正,也歡迎跟小正正討論!!
Email: gaspy@ksts.seed.net.tw
此文原載於[小正正教室]中文化軟體,感謝小正正。
[小正正教室]中文化軟體鏈接http://homepage.ohya.com.tw/computer/chinese/ |