2009年2月16日 星期一

將簡體軟體轉繁體的工作記錄

這是第一次嘗試將英文軟體中文化,但更精確的說是將簡體軟體翻為繁體,原因是對岸英文軟體中文化的速度,往往比較快也比較齊全。由簡體翻譯為繁體,是比較省力的作法。

這個實作的英文軟體,是前一陣子介紹的 Slawdog Smart Shutdown,這是一套很好用的自動關機軟體。這個得獎無數的軟體,在台灣知道使用的人並不多,也許是操作介面未中文化的原因。為什麼要選擇這個軟體呢?因為現在流行節能省碳愛護地球,現在電腦的使用相當普遍,很多人都會忘記關機,或不小心睡著了就開機一整夜,實在是太浪費電力了。這個關機軟體的功能真是超強的,它可以應付各種不同情況的關機需求。比如說您可以設定幾分鐘滑鼠鍵盤沒動作,就自動休眠。預防不小心睡著了而沒有關機。其他介紹請參看這裡

以下是中文化(繁體化)的工作過程:

首先,先判斷來源軟體有沒有加殼,所謂「殼」就是軟體是否經過壓縮處理。如果經過壓縮過,那就得先脫殼(解壓縮)。
PEiD是一款功能強大的偵殼工具,能夠偵測出幾乎所有被打包、隱藏和編譯的檔案,軟體還具備病毒掃描功能。另外還可辨識出檔案是用什麼程式語言編寫的,比如:VC++、Delphi、VB或Delphi等。

軟體網站:http://peid.has.it/

下載:http://www.peid.info/files/PEiD-0.95-20081103.zip

先將「Slawdog Smart Shutdown」安裝完成,執行PEiD,開啟「Slawdog Smart Shutdown」安裝完成後的可執行檔。

這裡可以看到這個程式是用 VC++撰寫的,但並沒有相關加殼的資訊。這就代表這個程式並未加殼。還好,這對我這個中文化的初學者是一個好消息,因為可以省一道力氣了。但是如果您對脫殼技術有興趣,請參考脫殼入門初級教學,寫得圖文並茂相當詳盡。

2009-02-15 13-52-05.jpg

完成「殼」的判斷之後,接下來就要實際進行中文化的動作。先對標準資源進行處理,簡單的說標準資源就是用ResHacker,Exescope..等等資源編輯器,打開後可以編輯的東西就是標準資源, 例如功能表(Menu),對話框(Dialog),字串表(String), RCDATA 等等...

這裡我用的是 Resource Hacker 來進行。

Resource Hacker 網站

Resource Hacker 中文版軟體王下載

安裝完ResHacker後的工作程序如下:

  • 請開啟兩個同樣的視窗,並且開啟同樣的來源檔。上面這個視窗,用來作簡繁轉換的工作區。而下面的視窗則為轉換成繁體後,真正存檔的工作區。
  • 上面視窗:從「檢視」→「編輯器字型」→選擇字體為「SimSun」,字集選「CHINESE_GB2312」
    下面視窗:從「檢視」→「編輯器字型」→選擇字體為「新細明體」,字集選「CHINESE_BIG5」
  • 選擇上面視窗左方的資源編號,開啟某一資源,範例中是「對話框」編號100的項目,2052表示簡體語系(1033表示英文語系, 1028表示繁體語系),這裡可以看到都是亂碼,請用簡繁轉換工具,將之轉成BIG5碼,並複製下來貼到下面的視窗並覆蓋原來的文字。
  • 在下方視窗將「宋體」改成「新細明體」,並且翻譯成台灣的習慣用語。完成後按下「編譯底稿」。
  • 依上面方法逐一修改所有資源項目,最後從上方功能表選「檔案」→「存檔」即可。(最好邊做邊存檔,以免修改的資料遺失)。

    2009-02-15 20-22-32.jpg



上面這個步驟完成後,就可以初步來檢視我們的工作成果,執行修改完成的程式,但很意外出現了下面訊息。

2009-02-15 18-28-03.jpg


我只是照步驟做而已,遇到這樣的錯誤,實在很挫折。尋找許久,找到這個軟體。

Resource Binder 2.6 下載

Resource Binder 是款優秀的資源修復工具,可以幫助您修復受損的軟體資源。

2009-02-15 18-29-23.jpg

修復完成後,程式就可以開啟了。

接著必須處理非標準資源,這裡要藉助一套 Cxat 它用於把簡體程式轉換為繁體。

軟體下載:Cxat 2.501

開啟欲處理的程式,依如下圖設定,按確定。

2009-02-16 08-45-55.jpg

進入步驟2,依如下設定,再按確定。

2009-02-16 08-46-29.jpg

這時請用文書軟體開啟與處理程式同目錄下,同檔名但副檔名為a2的文件(Smart Shutdown.exe.a2),把看不懂的部分都刪掉,然後存檔。(如果沒把握的,最好也刪掉,否則可能會改到重要的程式碼而無法執行)

2009-02-16 08-51-51.jpg

再回到Cxat,按下步驟3的「確定」,則開始進行軟體翻譯。至此整個中文化的工作大概完成90%了。

最後就是剩下看看有沒有遺漏的部分。開啟程式,看看選單、按鈕或功能表有沒有還是亂碼的部分,這時候可以用getword這套軟體把選單上的亂碼取出來,再用十六進位的編輯軟體去搜尋亂碼字串,再改成正確的文字即可。

後記:

  1. ResHacker的「SimSun」字型,字集選「CHINESE_GB2312」,無法處理「\」的字符,所以含「\」的功能表,是後來單獨用Cxat 轉換的。在Cxat步驟一選unicode即可,應該也可以用十六進位編輯軟體先把「\」拿掉,再用ResHacker來處理。
  2. 這個原來簡體版的slaw smart shutdown, 好像把開機自動執行的程式碼的指令也翻譯成中文了。
    原來是:「c:\program files\slaw\Smart Shutdown.EXE 啟動」=>導致無法自動執行
    用madedit搜尋「啟動」改成:「c:\program files\slaw\Smart Shutdown.EXE startup」=>ok 可自動執行
  3. 這個slaw smart shutdown,執行時會自動將所用到的登錄值寫入windows 的系統裡面。所以做成綠化版,不必考慮寫入登錄值的問題。如果要額外知道這個程式用到那些登錄值,可以安裝 InstallWatchPro 這套製作綠化版用的監看軟體,它可以監看安裝程式增加了那些登錄值及檔案。


參考文章:
Resource Binder 介紹
GetWord介紹
要如何將簡體軟體轉換為繁體中文版

  © Blogger templates Psi by Ourblogtemplates.com 2008

Back to TOP