中文化程式是怎麼寫出來的?
er">
Visual C++
目前大多數的軟體的操作介面和訊息都是寫在 resource (資源)中,所以我們只要把 exe 檔或 dll 檔中的 resource
擷取出來,就可以輕易的將訊息翻譯修改成中文。而 Visual C++ 中的資源編輯器 (Resource Edit) 可以將一個已經編譯完成的 exe 檔或
dll 檔中的 resource 擷取出來讓我們編輯。
使用前要注意的是:只有在 Windows NT 下才可以將編輯過的 resource 存回到原本的
exe 檔 (或 dll 檔) 中,Windows95 可以編輯,但是無法存回去!!
擷取 resource |
首先,開啟 Visual C++,我所使用的是 5.0 版本(6.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 →
,它會列出所有的視窗,選擇所有剛剛開啟的對話框視窗 (字尾有 [Dialog] 字的),然後按下
Windows...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 下不行呢??
這就要去問問微軟了...。
■ 我翻譯好後也存檔了,但是執行程式,中文字全變成亂碼了,為什麼呢?
因為你在翻譯之前沒有修改語系,所以中文字就變成亂碼了。
■ 我剛翻譯完一個項目後才發現忘記修改它的語系了,怎麼辦,難道只能重來嗎?
這時有一個方法可以試試,先不要修改語系,開啟該項目,確定中文都還沒變亂碼。不要關閉項目內容這個視窗,同時切換到主視窗去修改語系,關閉修改語系的對話框,再關閉項目內容視窗。這個方式不一定能成功,你再次打開項目內容,如果中文沒有變亂碼,就表示成功囉!!
(替自己偷笑一下吧!! =^_^=)
■ 修改語系後,卻無法開啟項目的內容來編輯,怎麼回事?
在修改語之前,應該先開啟一次該項目,關閉後再修改,才保證不會發生這種狀況。
留言列表