如何將軟體中文化 使用 Pebble

作者: Issac Chang

1
☉廢言在前∼

目前大部分從事中文化的朋友,使用工具大約有兩種: 一是抓出 Unicode 字串、翻譯成中文、再填回去的工具,例如 Chation。二是使用 Resource Editor,例如 Microsoft Developer Studio 裡的 Resource Manager 或者是 Borland C++ 裡的 Resource Workshop。這次小弟為大家介紹另一個好用的中文化工具 Pebble,希望能吸引更多人加入中文化的行列,讓國人使用電腦軟體時可以更方便一點。

既然已經有了前兩種工具可用來中文化,小弟為何還要費時費力介紹 Pebble 呢 ? 因為第一種工具只能挖出 Unicode 外文,然後翻譯、取代,對於改變對話方塊大小、文字方塊或列示清單大小,則是無能為力;而使用 Resource Manager 或 Resource Workshop 雖然可以改變對話方塊等等大小,但是要能使用 Resource Manager 或 Resource Workshop,您的硬碟必須有足夠的空間安裝 BC 或 VC 才行,這對硬碟空間吃緊的朋友可能就不利了 (前幾天安裝Microsoft Visual Studio 6.0 裡面的 MS Visual C++ 6.0 的時候,竟然要了我 300 MB左右的硬碟空間) ,而且 VC 在編輯執行檔時若要儲存變更,還得在 NT 下才行 ( ? ) 。Pebble 剛好可以克服上述兩類工具的缺點,Pebble 不但有能力改變對話方塊等資源的大小以避免中文化的軟體字串太長而看不到、不美觀;而且用 Pebble 開啟執行檔來編輯後可直接存檔,不管是在 Windows 9X 下或在 Windows NT 下都可以。更神奇的是,Pebble 只需一個檔案便可執行 (不需安裝,只要複製到磁碟中便可使用) ,而檔案大小約只有 780 KB。 如果中文化時能配合這三種工具一起使用,截長取短,相信中文化的作品能更臻完美。

☉資源類型介紹∼

在示範 Pebble 的使用前,小弟想先談談執行檔 (在 Windows 9X/NT 的環境中,執行檔的副檔名大約有 .CPL、.DLL、.EXE、.OCX、.VXD等) 內含的資源 (Resource) 類型。一般說來,可以在 Windows 9X/NT 執行的程式檔案執行檔可能內含的資源類型有下列幾種:

    • 影像 (Images)

      執行檔內含的影像資源可有三種:

         
      1. 位元映射檔 (.BMP)
      2. 滑鼠游標檔 (.CUR)
      3. 圖示檔 (.ICO)
       
    • 工具列 (Toolbars)
       
      工具列通常是由數個點陣圖所組成。根據預設值,每個組成工具列的點陣圖大小是 16*15 個像素,但若該程式允許您設定的話,您可以變更工具列按鈕的大小。
       
    • 對話方塊 (Dialogs)

      對話方塊是您在執行 Windows 環境下跑的軟體時常見到的一個東西,其功能主要是用來顯示重要訊息,或者供使用者輸入設定值等。對話方塊通常由下列元素組成:
       

      1. 列示清單 (List Box、Drop-down List)
      2. 按鈕 (Button)
      3. 文字輸入方塊 (Edit Box、Text Box)
      4. 垂直、水平視窗卷軸 (H/V Scroll Bar)
      5. 標籤 (Tab)
      6. 核取方塊 (Check Box)
      7. 選取圓鈕 (Radio Button)
      8. 微調按鈕 (Fine Tune Button)
      9. 進度指示器 (Progress Indicator)
      10. 字串 (String)
      11. 狀態列 (Status Bar)
       
    • 功能表 (Menus)

      功能表...就是功能表。若真要細分的話可有兩種:
       

      1. 下拉功能表 (Pull-down Menu)
      2. 快顯功能表 (Context Menu)
       
    • 鍵盤快速鍵 (Accelerators)

      要執行軟體的某些功能,您可以使用滑鼠拉下功能表。但是對於常要執行的功能,鍵盤快速鍵就派上用場了。通常為 Windows 9X/NT 環境設計的軟體有些共通的鍵盤快速鍵,例如:

      Ctrl+O: 開啟檔案
      Ctrl+S: 儲存檔案
      Ctrl+C: 複製
      Ctrl+V: 貼上
      族繁不及備載...
       

    • 字串 (Strings)

      字串這資源和對話方塊資源一樣,在許多軟體的介面中都佔有非常大的比例。例如對話方塊中可能會有字串資源,狀態列裡面的訊息也是字串資源。
       

    • 版本資訊 (Version)

      此資源主要包含程式的原始名稱、版本號碼、適用的作業系統以及其他相關資訊等。

說了那麼多,不管您是已經瞭然於胸還是一頭霧水,讓我們來看看範例圖片 (圖一) 您。
 
p32wz7ex.jpg

圖一: Winzip 7.0 內含資源類型

☉Pebble 是甚麼∼

若要小弟用一句話來介紹 Pebble,那會是: 「一個所見即所得 (WYSIWYG) 的資源編輯器 (Resource Editor) 」。

☉Pebble 特性簡介∼

  • 存檔時 Pebble 會為您儲存一份備份。
  • 會自動搜尋您翻譯的文字。例如當您將第一個 "&OK" 翻譯成 "確定(&O)" 之後,Pebble 會自動搜尋您正在翻譯的檔案中是否有其它的 "&OK",如果有找到的話 (就此例來講,通常會找到的有很多) ,會詢問您是否要一次幫您翻完這些 "&OK" 們 (見圖十五) 。
  • 當然也有一般編輯軟體應該有的 Search & Replace 的功能。
  • 當 Pebble 在相同的資源 (如同一對話方塊) 中找到重複的快速鍵 (Hot Key) ,會提示您有快速鍵重複了,並提供尚餘的快速鍵給您選擇。
  • Pebble 的 Menu Editor & Simulator 可以讓您以所視即所得的方式編輯功能表資源。您可以看到編輯後的功能表樣子 (見圖五、圖六) 。
  • 可預視對話方塊中各物件 (如文字標籤、按鈕等) 的排列位置 (見圖十一) 。

☉Pebble 可編輯的資源類型∼

常言道: 「一圖勝千文」,就來個看圖說故事如何 ? 下圖便是小弟用 Pebble 開啟 Winzip 7.0 主要執行檔 Winzip32.exe 的已中文化版本與未中文化版本的畫面。請注意圖二中用粉紅色橢圓括起來的部分: Menu、Dialog、與 String Table 三種資源類型是 Pebble 可以編輯的,而其他如 Cursor、Icon、Bitmap、Accelerator、Version Info 是 Pebble 無法編輯的資源類型。不過這並不重要,因為一般中文化時,最主要的就是翻譯 Menu、Dialog、與 String Table 三大部分。 (至於 Curosr、Icon、與 Bitmap 用 VC 或 BC 編輯後是不是可以直接寫回存檔,煩請熟稔 VC 或 BC 的朋友指點一二,小弟在此先行謝過) 。
 

p32intro.jpg

圖二: Pebble 執行畫面

☉Pebble 教學 Step By Step∼

1.開啟要翻譯的檔案(1/18)

先執行 Pebble,然後使用「File」功能表下的「Open」指令來開啟要翻譯的檔案 (見圖三) 。這裡小弟以 Winzip 7.0 為例來介紹如何使用 Pebble。
 

p32ex01.jpg
 圖三
 

2.翻譯功能表 (2/18)

開啟 Winzip32.exe 後,您將見到如圖四的畫面。前面說過 Pebble 可以翻譯的資源類型有: 功能表、對話方塊與字串等。所以在 Resource Types 下方我們就先選取 Menu 項目,此時畫面右方將出現 Winzip32.exe 內含的功能表資源,接著再選取 "WINZIPMENU: &File" 項目,然後按下「Edit」按鈕。 (注意: 那三個 Empty 最好別翻,不過選擇 Empty 後進裡面去會有東西需要翻) 。
 

p32ex02.jpg
圖四
 

3.翻譯功能表 (3/18)

首先注意標題列名稱是 Menu Editor & Simulator 的視窗上有「File」、「Actions」、「Option」、「Help」等四個主功能表項目,那就是 Menu Simulator 了 (記不記得小弟說過 Pebble 是一個 WYSIWYG 的資源編輯器) ,您可以在 Pebble 內看到您正在翻譯的 Winzip32.exe 裡的功能表的長相。

接著選擇 Menu Text 項目下的 "&File" 項目,並按「Edit」按鈕準備開始翻譯功能表。
 

p32ex03.jpg
圖五
 

4.翻譯功能表 (4/18)

再看一次 Menu Simulator,那不就是 Winzip 的功能表嗎 ?
 

p32ex04.jpg
圖六
 

5.翻譯功能表 (5/18)

還記得圖五的最後一個步驟嗎 ? 在圖五按下「Edit」後便會出現「Edit String」視窗 (圖七中有顏色的視窗) ,將 "&File" 翻譯成 "檔案(&F)",然後按下「OK」按鈕。
 

p32ex05.jpg
圖七
 

6.翻譯功能表 (6/18)

再看看 Menu Simulator,是不是已經不一樣了呢 ? 已經變成中文了。翻完之後,記得按「Save」按鈕才能儲存變更。
 

p32ex06.jpg
圖八
 

7.翻譯功能表 (7/18)

在上一步驟按了「Save」鈕後,畫面回到如圖九的畫面。您可以依例翻完所有功能表項目,但提醒您記得要定時存檔,免得心血白費喔 !
 

p32ex07.jpg
圖九
 

8.翻譯對話方塊 (8/18)

假設您已辛苦地翻完全部的功能表資源,那就接著看看對話方塊如何翻譯。請看圖十,首先在 Resource Types 下我們選擇 Dialog 項目,畫面右方會出現 Winzip32.exe 中所含的對話方塊資源,小弟將以翻譯「View」對話方塊來做例子,所以將游標移到 "Resource ID 800 : View" 上頭並按下滑鼠左鍵,然後準備按下「Edit」按鈕。不過在繼續之前請容小弟分享一下微薄的經驗: 在翻譯對話方塊資源時,如果看到像圖十裡面藍色框框中那種沒有 Resourcce Identifier 的對話方塊資源,「最好」別去動他 (至少別用 Pebble) 。WHY ? 翻的時候您會覺得很正常,不過執行時您就會發現,那些沒有 Resource ID 的對話方塊經過您的翻譯後反而全成了亂碼。這也就是您安裝「Winzip 6.3/7.0 超級中文版」的時候安裝畫面不是中文的原因,不過如果您不在乎多花點時間的話,或許用 Ultra Editor 改會有用您 ! 另外,小弟目前只在 Winzip 6.3/7.0 中見過那種沒有 Resource ID 的情況,在其他軟體倒還沒遇過。
 
 

p32ex08.jpg
圖十
 

9.翻譯對話方塊 (9/18)

記得小弟說過 Pebble 是個 WYSIWYG 的資源編輯器您,看看的圖十一的黃色框框中的 View 對話方塊,便是 Winzip 的對話方塊,您可以在編輯的時候看見對話方塊長啥樣子以及裡面各種物件的相對位置等。至於 Edit Controls 視窗中一堆文字的便是需要翻譯的東西了。首先選取 "800 : View",然後按下「Edit」按鈕。在您每翻完 Edit Controls 視窗中的一個項目時,黃色框框裡面的 View 視窗內容便會跟著改變。
 

p32ex09.jpg
圖十一
 

10.翻譯對話方塊 (10/18)

在 Edit Control String 視窗中,將 "View" 翻譯成 "檢視",然後按「OK」鍵,如圖十二。
 

p32ex10.jpg
圖十二
 
 
11.翻譯對話方塊 (11/18)

仔細看看,將 "View" 翻譯成 "檢視" 之後按「OK」,Edit Controls 視窗裡原本 Resource ID 為 800 的 "View" 已經變成 "檢視" 了;而且左邊的預覽視窗的標題也由 "View" 變成 "檢視" 了。接下來再選取 Edit Controls 視窗中的 "802 : &Associated program" 並按下「Edit」鈕。
 

p32ex11.jpg
圖十三
 
 
12.翻譯對話方塊 (12/18)

既然已經介紹過對話方塊的翻法,為何還要在一個例子呢 ? 因為用此圖用來介紹如何改變對話方塊內的物件的長寬會比用圖十三來得適切。在圖十四的的 Edit Control String 視窗中的 X: 表示 ☉Associated program 和 Using 這個框架 (Frame) 的左邊界距離是 12 單位、Y: 表示 ☉Associated program 和 Using 這個框架 (Frame) 的上邊界距離是 18 單位、Width: 表示 ☉Associated program 這串字所佔用的長度是 157 單位、最後的 Height: 則是高度 10 單位。如果翻譯後的中文字長度太長 (被截斷) 以致看起來不美觀的話,您可以試著將 Width: 的大小調到適當值。喔...差點忘了,將原文翻成 "關聯的應用程式(&A)" 後,再按「OK」鈕繼續。
 

p32ex12.jpg
圖十四
 
 

13.翻譯對話方塊(13/18)

當您按下圖十四的「OK」按鈕後,Pebble 發現 Winzip32.exe 中還有其他 "Associated program" 文字,所以出現一個對話方塊 (粉紅色橢圓框裡的對話方塊裡的文字是 "Propagate text change throughout the entire file?") 問您要不要讓 Pebble 將其它的 "Associated program" 翻譯成  "關聯的應用程式" (進行 Global Replace 動作時要特別小心) 。對話方塊的翻譯至此可告一段落,下一個步驟小弟將示範字串文字 (String Text) 的翻譯。
 

p32ex13.jpg
圖十五
 

14.翻譯字串資源 (14/18)
 
在 Resource Type 下方選擇 String Table 項目,畫面右方會出現 Winzip32.exe 內含的所有字串資源。要翻譯時只要先選取欲翻譯的字串資源,再按下「Edit」即可開始。所以我們先選擇 "3 : Create a new archive" 項目,並按下「Edit」鈕。
 

p32ex14.jpg
圖十六
 

15.翻譯字串資源 (15/18)

在圖十七的 Edit String 視窗中,將 "Create a new archive" 翻成 "建立一個新的壓縮包" 後,按下「OK」鈕。
 

p32ex15.jpg
圖十七
 

16.翻譯字串資源 (16/18)

嗯...圖十八中的 Resource ID 3 已變成 "建立一個新的壓縮包"。看到這邊,Menu、Dialog、String Table 的翻譯示範已經完成。現在按一下 Pebble 的工具列第二個按鈕 (或 File | Save) 來儲存您辛苦的成果。並將 Winzip32.exe 弄回 Program Files\Winzip 目錄,然後開啟 Winzip 看看自己的中文化作品您。
 

p32ex16.jpg
圖十八
 

17.檢視成果 (17/18)
 
圖十九便是成品了。拉下「檔案」功能表,裡面的第一個指令是「開新壓縮包(N)」,剛剛在 Pebble 裡面翻譯的功能表資源就是這些。另外再看到狀態列的 "建立一個新的壓縮包",那不就是剛翻譯的字串資源嗎 !
 

p32ex17.jpg
圖十九
 
18.檢視成果 (18/18)

用 Winzip 開啟一個 .ZIP 檔,選擇壓縮包中的一個檔案 (TweakBIOS.txt) ,然後按一下工具列的「View」按鈕,看看「檢視」對話方塊的標題列已經從未翻譯前的「View」變成「檢視」了。恭喜您已經看完這 18 個步驟的教學,相信您對如何使用 Pebble 已經有一番初步的認識。
 

p32ex18.jpg

圖二十

☉Pebble 使用須知∼

  • Pebble 動不了具有唯讀內容或是目前正處於開啟狀態的檔案,切記。
  • 要直接開啟軟體的執行檔來編輯嗎 ? 最好不要。比較好的作法是先將要翻譯的軟體的整支目錄從 C:\Program Files\SoftwareName 下 (通常是您) 複製到別的目錄,例如複製到 C:\Localization\SoftwareName,之後再使用 Pebbbles 開啟 C:\Localization\SoftwareName 下的執行檔來作業。千萬別有人來信說我教您複製了整支的 NETSCAPE COMMUNICATOR 目錄,為啥裡面有幾十 MB 大。哪些檔是可以 (需要) 翻譯的,哪些檔是不需要翻譯的,您應該有個概念,不需要的檔案複製過去之後就可以刪了 (好像囉唆了點) 。
  • 在 Windows NT 4.0 Workstation/Server 使用 Pebble,Pebble 的螢幕重繪部分會有點問題,這在我的 WINFAST S280/S680 PCI 都發生過。不過並不太嚴重,Pebble 用熟了之後您自然會知道該如何處理此問題。
  • 相信有經驗的中文化作者會知道執行檔中的東西啥是可以翻的,啥是不可以翻的。若新手入門,請把握一個原則 「若您不確定翻了之後是否會造成程式執行不穩定的,那就先不要翻。等確定可以翻的翻完之後,再一一測試您懷疑可否翻的東西」 (玩過 "踩地雷" 沒有 ? 確定沒有地雷的區域可以先翻開,不確定是否有地雷的地方就先給他插根旗幾,等確定沒地雷的地方全翻開後,再以生命的代價來測試存疑區...咦...好像說的太嚴重了) 。而使用 Pebble 進行中文化時會遇到絕對不能翻譯的東西有:
     
    1. 變數: 如 "%d"、"%s",較常出現在字串資源中。千萬不要天才地把它們翻成 "百分之D"、"百分之S",要不然執行程式後某些地方鐵定會出錘。
    2. 換行符號: /n 是換行符號,較常出現在字串資源中。沒事別亂抓掉,否則訊息會出問題 (想想文字一行到底而不換行,會使得行的長度超過對話方塊、文字方塊或狀態列等物件的長度而看不到後面的東西) 。
    3. 定位符號: /t 是定位符號 (功能類似鍵盤上的 Tab 鍵) 。最常出現在功能表項目裡面,例如使用 Pebble 開啟 Winzip 7.0 主執行檔時,翻譯功能表資源時您可以看到「File」功能表下的「&Open archies.../tCtrl+O」,若您在翻譯時將「&Open archies.../tCtrl+O」改成「開啟壓縮包(&O)...Ctrl+O」,則您執行中文化過的 Winzip 時,開啟「檔案」功能表時會看到「開啟壓縮包(O)...Ctrl+O」,而不是看到「開啟壓縮包(O)...    Ctrl+O」。
    4. /r: /r 常出現於字串資源中。小弟不知道 /r 是做啥用的,不過最好也別動他。
    5. | (也就是鍵盤上的 Shift + \) : 常在字串資源中出現,功能類似換行符號 ( ? ) ,沒事也別亂抓掉。
    6. 翻對話方塊時看到 "Static" 時,千萬別翻 。
    7. 翻譯對話方塊資源時,沒有 Resource ID 的項目「最好」別翻 (見圖十) ,翻了會怎樣 ? 以 Winzip 來說,就是該部分的對話方塊裡的所有文字全成了亂碼 (或許那些沒有 Resource ID 的部分不是 UniCode,所以翻了會有亂碼)

☉下載 Pebble∼

下載 Pebble (約 294 KB) : ftp://cpatch.hort.ntu.edu.tw/patchutil/tool/pebble32.zip (暫訂)
若您想找中文化軟體,請到中文化軟體聯盟中文天地網逛逛。
想要瞭解更多有關如何將軟體中文化的技術,請到小正正的家 中文化軟體DIY挖寶。

☉下載本頁壓縮檔∼

如果您對本頁內容有興趣的話,小弟已將本頁內含的圖文壓縮成 p32teach.zip (檔案大小約 530 KB) 。您可以抓回去解開到一個您喜歡的資料夾,然後慢慢研究。

☉我的資料∼

本文作者: Issac Chang
我的電郵: xyz21960@ms22.hinet.net
u2504249@mail2.scu.edu.tw
我的網頁: http://mail2.scu.edu.tw/~u2504249

☉廢言在後∼

以上只是小弟使用 Pebble 從事中文化的小小心得,抓下的畫面及教學說明也只是您在使用 Pebble 時經常會遇到畫面,其實 Pebble 裡還有很多東西是要您親自使用了後才會發現。

若您對本篇文章內容有任何批評建議,您可以捎封信給小弟,我會盡快回覆。當然本文也歡迎任何非商業用途的引用及連結,但請保持文章內容的完整性。

 



回教學