中文化程式是怎麼寫出來的?



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 →
Windows...
,它會列出所有的視窗,選擇所有剛剛開啟的對話框視窗 (字尾有 [Dialog] 字的),然後按下 Close
Window(s)
,就可以一次全部關閉啦!! 注意別把所有的視窗都關閉了,連程式本身的視窗都關閉。最後按下 OK
關閉檢視視窗。


趁著這些項目都還被選取的時候,按下滑鼠右鍵,選擇 Properties,然後把 Language
的地方設成 Chinese (Taiwan)。就可以一次把所有的對話框的語系都改了,多方便!!


接下來要做的就是一個一個分別去修改對話框的內容 (雙擊該項目開啟內容),把訊息翻譯成中文,再關閉。


在編修內容的時候,要編輯那一個字串,就用滑鼠雙擊它開啟訊息內容,然後把英文字串翻譯成中文。


05.gif (6604 bytes)檢視圖片


某些英文字元前可能會有 & 這個符號,例如:&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 下不行呢??
這就要去問問微軟了...。


 



■ 我翻譯好後也存檔了,但是執行程式,中文字全變成亂碼了,為什麼呢?


因為你在翻譯之前沒有修改語系,所以中文字就變成亂碼了。


 



■ 我剛翻譯完一個項目後才發現忘記修改它的語系了,怎麼辦,難道只能重來嗎?


這時有一個方法可以試試,先不要修改語系,開啟該項目,確定中文都還沒變亂碼。不要關閉項目內容這個視窗,同時切換到主視窗去修改語系,關閉修改語系的對話框,再關閉項目內容視窗。這個方式不一定能成功,你再次打開項目內容,如果中文沒有變亂碼,就表示成功囉!!
(替自己偷笑一下吧!! =^_^=)


 



■ 修改語系後,卻無法開啟項目的內容來編輯,怎麼回事?


在修改語之前,應該先開啟一次該項目,關閉後再修改,才保證不會發生這種狀況。