返回列表 回復 發帖

簡體版軟體繁體化的方法

簡體版軟體繁體化的方法(VB程式簡易版)


  名為簡易版,乃是因為這次舉例的簡體程式並不大,不用去殼,且只有幾百K的大小。有做過中文化的朋友應該粉清楚VB程式在中文化的過程中,比起VC或Delphi要麻煩得多(不是困難),若問為什麼?原因是找不到粉好的工具來輔助中文化的過程,雖然網路上現在有一套軟體(GetVBRes)用來中文化或繁體化VB所寫出來的程式,其實蠻好用的,但是~~,沒有註冊的版本,功能有所限制,想在網路上找到註冊機並不容易(因為是中國人寫的,普遍性不高),所以我拿他來當作參考的依據(沒註冊的版本,就算用他來繁體化,也無法儲存),主要的工具還是以Ultraedit為主,有點土法煉鋼的味道,但是可以很清楚的知道自己在做的是什麼。

  底下我們就針對這次繁體化所需要用到的程式加以介紹:

1. eXeScope v6.3 (需註冊,註冊機可輕易找到,註冊以後可解除只能儲存一次的限制)
  一套可將程式中的英文字挑出來加以修改、翻譯,包括更改選單、字體、對話方塊,eXeScope能直接修改EXEDLLOCX等檔案。

2. CXAT v2.3 (免費軟體,在2K底下安裝完後,在桌面上或開始功能表裡均找不到執行的路徑,必須在\Program\CXAT 2.3底下執行)
 是一個找字符替代的程式, 可以在程式內找出ascii及unicode的中文字,由繁體轉譯成簡體, 或者由簡體轉譯成繁體。

3. Convertz v4.3 (免費軟體,簡繁轉換速度超快,粉好用)
 中文內碼轉換器(免費軟體)。

4. GetVBRes v0.51 (需註冊,沒註冊沒有儲存功能)
 VB資源工具,本軟體將會帶動 VB 程式中文化的全新概念,是一套不錯的中文化工具。

5. UltraEdit v9.0 (這不用再說了吧)

  此次繁體化的範例程式是一套輔助中學生學數學的軟體(中國大陸這樣的軟體超多的),因為在國內找不到相關的,只有中國大陸那邊有,這才興起我做繁體化的念頭,另一方面是因為繁體化比中文化要簡單一點(字數接近,不用太考慮英文轉中文字數不一樣所衍生的問題)。底下就是範例程式(Mather.exe)的原始畫面:


  
當然,還沒開始繁體化之前,所看到的畫面都是怪怪的文字,這是因為大陸的GB碼被Big5碼解釋的結果,當然我們要做的就是將實際的GB碼改成Big5碼才能正常顯示。
一、首先我們利用eXeScope來觀察軟體能得到的資訊有哪些?開啟eXeScope後,直接將mather.exe載入,可得到如下的畫面:





畫面中出現\Import\MSVBVM60.DLL已經可以確定,此程式乃是利用VB所寫成,所以eXeScope能夠使上的力並不多,因為我們在程式所擷取出來的資料裡面看不到功能表之類的選項,但是是不是完全一點幫助都沒有?也不盡然!因為\Resource\String\63與\64底下可看到一堆的文件說明,原來這部分是程式的『每日秘訣』,程式剛開始執行時會出現的操作說明,這部分我們可以利用這套程式來將之繁體化,當然出現?的地方,只能自己猜測啦!轉成繁體時,字數盡量保持不變比較不容易出問題,所以萬一翻譯時出現字數不同時,為了避免存檔後無法執行,請先將程式用另外的檔名複製起來,才不會做白工!!



二、利用CXAT v2.3來自動轉換ANSI(GB-->Big5)




將程式載入後,模式選擇Unicode 及UTF8 翻譯失敗,選擇ASCII(全部)與(Delphi)翻譯成功,但是翻出來還是一堆亂碼(應該說沒翻)!選擇ASCII(VB),方法選Other->BIG5,最小字串長度不管選2或4翻出來的結果,部分翻部分沒翻!真是有點奇怪!而且採全自動方式,不像GetVBRes是讓我們將翻譯的名詞給填上去,所以彈性不大,執行失敗也只能認了!!以下便是執行的結果:




  
很明顯的,畫面中有一些名詞已經改成繁體字了,但是功能表拉下來以後看到部分的選項還是亂碼,顯然此軟體翻譯的有點問題!沒關係,部分沒翻出來的亂碼可以利用步驟三的『編輯翻譯檔案』自己翻,或修改不適當的字眼,所以必須藉助簡繁翻譯軟體來輔助(轉換軟體眾多,可選擇一套適合自己的,個人覺得Convertz蠻不錯的),此部分告一段落之後,大家應該都已經發現,按鈕上的文字看起來雖然是繁體字,但是卻頻頻出現"?",為什麼ㄋ?不是應該翻完了ㄇ?還沒!!累人的工作才正要展開ㄋ!!



三、利用GetVBRes來輔助(如果已經註冊,可以直接利用他來修改)





開啟mather.exe以後,點擊『雙字元資源』,ANSI字串裡面就是剛剛我們利用CXAT繁體化的部分,Unicode字串則顯示了另一部份的中文字,因為GetVGRes沒註冊,所以修改也沒用,反正存不起來,怎麼做ㄋ?苦思良久!利用UltraEdit去搜尋上面的字串,失敗!將上面的字串轉成GB碼再去搜尋,還是失敗!上網找可轉成Unicode的軟體,沒有合適可用的!利用RegVBRes後面顯示的『偏移』位址在UltraEdit上相對應的位址上看到的是怪怪的碼,例如:FED0,在UltraEdit上面看到的是如下面的編碼



誰知道他放的就是『解一元n次方程』的Unicode碼,問題是網路上好像也沒有用來轉換Unicode碼的程式(我的意思是,將中文字轉成Unicode,就像"解"="89E3",UltraEdit上顯示的前為低位元,後為高位元,所以記得交換),找來找去終於找到了一個網站,可以將中文字轉成Unicode碼,所以只要利用UltraEdit在相對應的位址上將正確的繁體中文Unicode碼填入即可!說是簡單,做起來可很繁瑣........。



四、利用UltraEdit來修改Unicode碼及部分轉換未完成的部分



  在CMEX 中推會網站,利用裡面的中文標準交換碼 \字碼查詢&下載,來找出實際的Unicode碼,當然在mather.exe執行時,畫面所看到的怪怪的中文字,例如:『确定』其位置可以利用GetVBRes找出,或找出其Unicode="786e5b9a",然後在UltraEdit用搜尋的方式找出來,記得搜尋時應該要找"6e789a5b"才可找到(前後交換)。位置找到之後將修正的『確定』的Unicode碼("78ba5b9a")填入即可,記得填入時應該填"ba789a5b"才對!其他的部分比照這樣的處理方式即可。以下便是繁體化之後的結果。


寄東西到台灣 寄東西到大陸 http://www.xinhuanet.com.tw 馨華兩岸快遞 QQ: 422928512 Line:xinhuanet


當你看了以下的文章相信你就會繁體化了
本篇文章為"如何將簡體軟體轉換為繁體"
相關文章為"如何將英文軟體翻譯成繁體中文"

網址為 http://leoboard.cpatch.org/cgi-bin/topic.cgi?forum=2&topic=729&show=0

以下我們就來介紹如何將簡體軟體轉換為繁體步驟如下

一.了解加殼與脫殼...

1.不管簡體軟件轉繁體或英文軟體翻譯成中文首先
你要了解該程式有沒有加殼.

2.所謂的殼即是將程式 *.exe 或 *.dll加上壓縮保護,
例如 1.5MB 的 Delphi程式用Aspack加殼後只有
500Kb 左右的大小.如果程式被壓縮加殼,我們就必須
脫殼後才能進行繁體化.

3.如何脫殼:

①.你必須用PEiD偵側看看該程式有沒有加殼.
PEiD 最新版 0.92 Build1121
②.如有加殼你必須用適當的脫殼器脫殼...
最常見的加殼是Aspack和Upx...等等
③.當找不到適當的脫殼器時,你可以試試用總體脫
殼器來脫殼.
④.你也可以用記憶體脫殼器來脫殼
⑤.上述都不行,你就須要手動脫殼了...

二.了解軟體的標準資源與非標準資源

1.這裡的資源分類,純粹是由中文化的角度,基於中文化
方便性而區分為標準資源及非標準資源:-)
2.簡單的說標準資源就是你用ResHacker,Exescope..等等
打開後可以編輯的資源就是標準資源,
例如功能表(Menu),對話框(Dialog),字串表(String),
RCDATA 等等... 
3.從中文化的角度看,資源的類型可分為 6種:

①VC類標準資源(如Menu、Dialog、String、message
table資源)。
②Delphi類標準資源(如Rcdata資源)。
③非標準的Unicode字元(主要是一些VB編譯的程式,程
式的Unicode字元不出現在Menu、Dialog、String等資
源中,有少數VC、Delphi編譯的程式含有少量這樣的
字元)。
④非標準的Ascii字元(指的是不出現在String、Rcdata
等資源中Ascii字元)。
⑤語系檔案(一般指內含語系資源的文字檔案,副檔名多
由作者隨意取)。
⑥其它(內含Batmap資源中的文字等等)。 三.了解軟體的類型
①VC類型即標準資源內含(Menu、Dialog、String、等)

②Delphi類型即標準資源內含(Rcdata、等)。
③VB類型即標準資源不含(Menu、Dialog、String、
Rcdata等)。

四.將簡體軟體轉換為繁體

1.在這裡我們強調先翻譯標準資源再翻譯非標準資源
2.標準資源的轉換:
①.用ResHacker或者ExeScope打開,配合簡繁轉換工具
將Menu、Dialog、String、Rcdata轉換為繁體
②.當然初學者都是打開兩個ResHacker視窗
先用ResHacker打開簡體程式,將字型設定為Simsun,
然後再另外開啟ResHacker,這時打開該簡體程式,
將字型設"新細明體",
③.將ResHacker設為SimSun那一視窗上的 Menu、Dialog
、String、Rcdata內資源一項一項的複製貼到簡繁轉
換工具(剪貼簿)上,轉換後並且將簡體習慣用語轉換
為習慣用語,再將它複製到設為"新細明體"的這個
ResHacker視窗上再存檔...
④.除以上方法,當然你也可以用Cxat選Unicode來翻譯標
準資源
⑤.注意:

5-1.在轉換VC軟體的Dialog時必須
把 FONT 9, "宋體"
修改為 FONT 9, "新細明體"

5-2.在轉換Delphi軟體的Rcdata時必須把
⑴.把 Font.Charset = GB2312_CHARSET
修改為 Font.Charset = DEFAULT_CHARSET
⑵.把 Font.Name = '宋體'
修改為 Font.Name = '新細明體'

3.非標準資源

1.Cxa是用於把英文軟體翻譯為繁體中文
Cxat 用於把簡體程式轉換為繁體....
2.VC類程式及Delphi程式的非標準資源最好用Cxat選擇
ASCII把簡體轉換為繁體,當然ASCII內有'宋體'最好改
為'新細明體',如因字串長度不容許修改,暫且翻譯為
'宋體'也無所謂。
3.VB類程式由於都屬非標準資源最好用Cxat翻譯
⑴.先用Cxat選擇UNICODE把Unicode簡轉繁
⑵.再用Cxat選擇ASCII把Ascii簡轉繁
⑶.當然ASCII內有'宋體'最好改為'新細明體',如因字串
長度不容許修改,暫且翻譯為'宋體'也無所謂。
⑷.vb5chs.dll改為vb5cht.dll或者
vb6chs.dll或vb6cht.dll
⑸.接下來須把簡體字型控制碼轉為繁體控制碼
簡體字型控制碼 86 00 00
繁體字型控制碼 88 00 00
日文字型控制碼 80 00 00

詳見

http://wongtaisin.2myweb.net/other/charset/charset.html

4.Cxat的使用方法:

⑴.用Cxat打開要翻譯的程式,
⑵.選擇要抓出的碼是 ASCII 或 UNICODE 等
⑶.抓出後為 *.exe.a1 或 *.exe.u1
⑷.把 *.exe.a1 或 *.exe.u1 內不須翻譯的刪除
⑸.進入下一步驟,再把 *exe.a1 或 *.exe.u1 翻譯
為繁體這時檔案名稱為 *.exe.a2 或 *.exe.u2
⑹.編輯或修改 *.exe.a2 或 *.exe.u2
⑺.進入下一步驟,把 *.exe.a2 或 *.exe.u2 寫入
新程式(新程式檔名為 *.exe.new)
⑻.把 *.exe.new 更名為 *.exe 即是你翻譯後的程
式...
以上大略說明使用方法...詳見chm說明

5.語系修改

①.語系即是用ResHacker打開程式後,各項資源前即有顯
示語系編號,例如:

1033表示英文語系
2052表示簡體語系
1028表示繁體語系

②.你必須把 2052 或 1033 改為 1028
當然不修改也沒關係...

五.Cxat的下載,用法等見

http://leoboard.cpatch.org/cgi-bin/topic.cgi?forum=3&topic=338&show=0

六.以上只為了讓初學者學會中文化所作粗略介紹
當然你們學會了中文化方法,自然會去找尋更快的方法,
而且也會找尋更適合的中文化工具配合,....



寄東西到台灣 寄東西到大陸 http://www.xinhuanet.com.tw 馨華兩岸快遞 QQ: 422928512 Line:xinhuanet
返回列表