Make your own free website on Tripod.com


------------------一步一步學做軟體中文化 (VC++篇)

-----------------------------作者: 阿濤 ! 新起點漢化工作室】

前言:
  
承蒙各位的抬舉,本人拙作《一步一步學做軟體中文化》在雜誌上發表後,得到了不少朋友的喜愛 ! 我想這應該得益於許多中文化前輩的寶貴經驗,我所做的只是對他們的經驗進行了更通俗化的解說並加上了一些自己在中文化過程中的感受和小技巧,以便讓更多初識「軟體中文化」這個事物的朋友們能夠更快的瞭解和吸收,大家在閱讀它的同時,也請不要忘了諸多中文化人不懈的努力和付出 !
  
如今文章已經發表了,為了讓更多的網友瞭解它,我也決定把文章放在首頁上,供大家自由瀏覽。另外,從我寫這篇文章至今也有很長時間了,在這段時間中,隨著自己中文化經驗的積累和一些同行的幫助,我對中文化又有了一些新的瞭解,也想起了一些被遺漏的東西,這些都一併寫在了下面。總之目的只有一個,希望各位朋友能夠更好更快的熟練掌握中文化的操作方法,下次給我寄來的中文化升級檔質量更好些,呵呵^O^
   
一、中文化方法簡介:
  
先介紹一些軟體中文化的方法您。目前線上出現的中文化方法有許多種,例如VC++、BC++、Pebble、RRC、CPatch、Exescope 等。對於一般用VC,BC等語系編製的程式,通常採用的方法就是VC++、BC++等,它們的優點是可以採用批次中文化的方法來簡化中文化過程,界面直觀;缺點是不能對付用Dephi、BC Builder或VB編寫的程式。而對付這些個程式需要採用Ultraedit、RRC 或Exescope之類的工具。Pebble是一個與VC++功能類似的工具,優點是不需要NT系統,而且程式小巧,僅一個檔案;缺點是不能批次中文化,界面不夠直觀。CPatch是一種基於批次中文化設想的簡易中文化工具,但功能及直觀性實在太差,只能做為輔助工具。Ultraedit 是一個純文字編輯工具,當然它可以編輯的不僅是普通純文字,還有16進制的代碼,用它做中文化需要很小心,而且麻煩和不直觀,但它的優點在於能夠根據情況控制中文化的質量和方式,並且只要一儲存隨時都可以看到中文化的效果。RRC是Ultraedit的替代品,操作要比Ultraedit 方便許多,而且在一定程度上可以批次中文化,節省時間和精力,但它的缺點是不能完全把需要中文化的字串擷取出來,所以單靠它是不能完全中文化的。Exescope是一個很不錯的中文化工具,具有視窗界面,對於所有語系編的程式都可以中文化,有一定的直觀性;要說缺點可能是操作上有些複雜,在中文化VC或BC編的程式上還是不如VC++來的方便,這個軟體目前我還不怎麼用,今後若摸熟了再給大家詳細介紹您 !
  
軟體中文化要根據不同的軟體來決定中文化工具,這這裡我要示範的是用VC++進行中文化的過程。我為什麼要介紹VC++中文化這種方法呢 ? 這種方法還需要NT作業系統,應該是比較麻煩的呀 ! 不能介紹別的簡單一些的方法嗎 ? 當然可以 ! 只是我覺得用VC++中文化這種方法在目前還是比較流行的而且最完美的中文化方法,適用的軟體很多,出錯少,中文化質量容易得到保證,既然大家要學中文化,學一種最好的方法難道不好嗎 ? 本著為使用者負責的態度我想大家也應該盡可能地採用最好的中文化方法。雖然它相對要麻煩一些,但若看了我下面的介紹,您會發現其實它也並不是很麻煩的 ! 當然其他的中文化方法如果今後有機會和時間我也會再做介紹的。
  
二、中文化前的準備:
  
1、系統準備: Windows 95/98簡體中文版和WinNT 4.0簡體中文版。
  
2、軟體準備: Vusial C++ 5.0,UltraEdit-32 5.0 (或更高版本) ,CPatch 1.3b,SeaTools 1.0,WinZip7.0等。另外準備一個翻譯軟體 (如金山詞霸 3) 和一本好的英漢字典是必要的 (除非您的英語水平穩蓋 ! )
  
3、系統及軟體安裝的注意事項:
   
還是先談談系統的安裝您。因為用VC++做中文化只有在NT系統中才能保存對檔案所做的更改,所以需要安裝NT系統。對於普通的電腦用戶來說,平時是不需要NT作業系統的,所以僅僅為了做中文化而安裝NT的話,當然是希望盡量節儉地安裝了,以免浪費磁碟空間 ! 我們可以在同一台電腦中安裝WIN95 和NT 4.0,但是要注意現在的大硬碟採用的 FAT32格式是不支援WIN95 和NT雙重系統啟動的,而且NT系統也不能識別採用了 FAT32格式的硬碟,所以在安裝系統之前,我們有必要對硬碟進行一些分區和格式化工作。具體的方法是:
   
首先用WIN95 的啟動磁碟啟動電腦,執行「Fdisk」命令進行硬碟分區。在被詢問是否採用大磁碟支援 (也就是採用FAT32格式) 時,如果選擇「NO」,就是採用FAT16的檔案系統格式,安裝WINNT肯定可以,每個分區的大小也可以隨意設定。但這也有個問題,就是如果您的硬碟比較大的話,採用FAT16格式是划不來的 ! 因此為了達到即採用FAT32格式又能夠安裝 WINNT的目的,您可這樣折衷: 就是選擇「YES」,這樣您的硬碟就採用FAT32格式了。請至少分三個區,一個安裝WIN95 (最好在 C 區上) ,一個安裝WINNT4.0。另一個大一些的分區可以存放您自己的資料。但記住在選擇 C 區 (即主引導區) 的大小時,將它定為500MB,一定別大於 510MB,用於安裝NT的 D 區也同樣不要大於 510MB,這樣的話雖然您採用的是FAT32檔案格式,但它對小於510MB的分區仍會自動採用FAT16格式進行格式化,如此一來您就可以進行雙重系統啟動了 !
   
分區分好之後,重啟動系統,再執行格式化命令,將每個分區進行格式化,您會發現 C 區和 D 區採用的是 FAT16格式,而其他的大分區採用的則是FAT32格式,這樣就既保證了WIN95和NT的雙重啟動,又減小了磁碟簇的大小,是一個很好的方案 !
  
格式化之後,就可以安裝作業系統了。請記住,在要同時安裝WIN95和WINNT時,一定要先安裝WIN95,再安裝WINNT ! 如果一個軟體在WIN95和WINNT中都需要安裝的話,也應該先在WIN95中安裝,然後在WINNT中重新安裝一次,可安裝在同一個目錄中。關於 WIN95的安裝我不多說,大家已經駕輕就熟了。關於WINNT的安裝,為達到精簡安裝的目的,可這樣: 在 WIN95安裝完成之後,換用WINNT的啟動軟碟啟動電腦,將WINNT安裝在 D 區,採用的是 FAT16的檔案格式,安裝中有一步是選擇「域控制器」的,請選擇「獨立域控制器」,之中還有一步請選「每服務器 0 客戶」 (好像是這句) ,安裝到網路時, 請選擇「此時不要與網路連線」,對於一些諸如附件之類的選項,也一概不要選。安裝好之後,也不要再安裝些什麼「Server Pack」之類的升級檔,只要使用了WINNT自帶的「Server Pack 1」就夠了。這樣安裝下來,整個WINNT大概只有130MB左右,不算大您:-)
  
接下來的步驟就是安裝IE,NT系統自帶了一個IE 3.0,但安裝VC++ 5.0需要的是IE3.01或更高版本的支援,我推薦大家安裝微軟的OFFICE97光碟中的IE3.01簡體中文版,也不必安裝更高版本的IE,免得多佔地方,夠用就行了 !
  
WINNT雖然裝好了,但如果您還有一個分區採用了FAT32格式的話,它是識別不了的,讀不了上面的資料,怎麼辦 ? 您可以在NT中安裝一個名為「FAT32 for Windows NT 4.0」的小軟體 (在華軍首頁上就有) ,一切都會搞定的 !
   
到此,整個作業系統已經全部安裝完成,至於WINNT能不能與WIN95安裝在同一個C 區,好像有些問題,不過具體我也不清楚,哪位高手知曉的還請指點一二 ! 不過 C 區僅有 500MB大小,即使能同時安裝WINNT,也最好別這樣,因為您還要安裝其他軟體呀,如果塞得太滿了會影響執行速度的 !
   
接下來我再說說軟體的安裝: 在「軟體準備」中提及的軟體請在兩個系統都安裝一下,次序仍是先WIN95再WINNT,不要搞反 ! 需要特別提到的是VC++,這麼個大軟體如果僅為了中文化而裝的話實在是沒必要全部裝上去,因此您可按下列方法安裝,還不到30MB呢:
   
安裝VC++時,選擇「Custon」 (定制安裝) ,在接下來的一步中將「Microsoft Developer Studio」選中,其他的選項都不選,然後按步驟安裝完成。安裝完成之後,請將 VC++光碟中的三個檔案「dlg.h」、「winver.h」、「winresrc.h」找出來,它們在光碟上的目錄是「\Devstudio\Vc\Include\」,請將其拷到硬碟VC++所在分區的「\Program Files\Devstudio\Vc\Mfc\Include\」目錄中即可。
  
系統裝完了,軟體裝完了,但還有一樣東西可千萬別忘了安裝,那就是多語系支援的語系檔,通常需要安裝的語系檔有「日文」、「韓文」、「繁體中文」、「泛歐洲語系」等。在NT系統中,由於IE是3.01版的,您可以安裝 WINNT光碟中自帶的語系檔,也可以安裝OFFICE97光碟中的語系檔,另外在《電腦報》光碟97年第三期中也有 (一個語系檔就是一個壓縮檔案,具體名稱我記不得了,自己找找您) 。在WIN95系統中,如果您安裝的是IE40,您可以用OFFICE光碟或《電腦報》光碟中的語系檔,如果安裝的是 IE50,則其自身就有語系檔可供選擇安裝。有一點需要注意的是,若是IE40,安裝多語系檔後有些地方的字會變成亂碼,您可在純DOS 狀態下刪除WIN95下的「System」目錄中的「cp_950.nls」檔案即可 (亂碼的情況在Win98或IE50的情況下不會發生) 。
  

 

三、用VC++進行第一階段中文化:

1、通常軟體中可以中文化的資源是放在.exe和.dll格式的檔案中的,使用VC++也就是對這兩種格式的檔案進行中文化。為了中文化時的方便,請在中文化一個軟體之前,先在此軟體的安裝目錄下再新建兩個目錄,一個名為「new」,一個為「old」。將安裝目錄下的所有.exe和.dll檔案都複製一份到old幾目錄中。
  
另外,在用VC++中文化時,請在WinNT系統中進行。因為只有在WinNT中,中文化後的.exe或.dll檔案才能儲存,而在Win95/98中,是不能儲存的。
  
2、開啟檔案: 在WinNT 4.0系統中,啟動VC++,選擇選單「File」中的「open...」後如圖:
  

p1

  
按順序選定「old」檔案夾中的一個檔案,然後按「開啟」按鈕,如下圖:
  

p2

  
把old目錄中的所有檔案都照此法開啟看一下,把那些不含有「Menu」、「Dialog」、「String Table」任何之一的檔案從old目錄中刪除,然後把未改動的剩餘的檔案複製一份到new目錄中,我們要中文化的就是new目錄中的檔案,old 目錄中的檔案就留作備份,別動了。
  
3、修改語系: 現在就逐一中文化new目錄中的檔案,按上述方式開啟一個檔案,先修改「Version」的語系,如圖:
  

p3
  
p4

  
p5

  
這樣改後,再如下圖繼續修改:
  
p6
  
p7
  
經過這些步驟的修改,「Version」的設定就改好了,看看效果您:
  
p8
  
需要說明的是,並不是每個檔案中都有「Version」 這一項,如果沒有的話,上面所做的修改就可以免了,開不開心:-) 另外,有些軟體的「Version」 下面有兩個代號相同但語系不同的項目,例如「1 [English(U.S)]」和「1 [English(U.K)]」,這時您可以根據整個軟體的情況將一個主要的項目的語系按上面的方法修改掉,另一個就不要動它了。還有一種情況,就是在某些軟體中,如果您修改了「Version」的語系,軟體中文化後就不能正常執行,這時您就不要修改其語系,但其他資源如「Dialog」、「Menu」 等的語系還是照改不誤 ! 這種軟體的代表是「WinZip 7.0 SR1」。
  

 

 

接下來,我們再修改「Dialog」項目的語系,與修改「Version「 語系不同的是,它的方法有些區別,如圖:
  
p9
  
這些對話框開啟後不要做任何修改,只需直接關閉它們。如果對話框很多的話,一個一個地關閉就太費時間了,您可以用以下方法去一次性全部關閉:
  
在選單欄中選擇「Window」,並在出現的下拉選單中選擇最後一項「Windows...」,就會出現如下對話框:
  
p10
  
這些對話框關閉後,繼續按下圖操作:
  
p11
  
這是選擇了「Properties」後出現的對話框:
  
p7
  
「Dialog」的語系改好了,看看效果您:
  
p12
  
剩下的就是修改「Menu」和「String Table」的語系,修改方法與修改「Dialog」相同,同樣需要先開啟再關閉然後修改。當然關閉視窗時因為項目不多,您可以直接關閉,不需要採用上面的方法。順便提一句: 修改前先開啟一下是為了避免中文化後中文字變成亂碼,所以不要免掉這一步 ! 另外,「String Table」中的項目最好是在修改「Version」的語系之前先開啟看一下然後關閉。
  

 

4、中文化: 語系修改完成後,就可以開始正式中文化了,對於一些較小的軟體,它裡面要中文化的資源不多,您就可以直接開啟每一個項目逐字逐句進行中文化了,也費不了多少時間,我把這種方式叫做「直接中文化」方式。
  
但現在也有很多大的軟體呀,裡面要中文化的資源很多,如果就這麼一句一句的翻譯,哪年哪月才做的完呢 ? 而且,如果以後軟體出了新版本,您又得重新逐字翻譯,一點借用都沒有,豈不太冤了 ! ? 所以對付這種情況也應該有一種方法,我稱之為「批次中文化」方式,在後面會講到的。現在先說一下「直接中文化」的具體操作:
  
我們首先中文化「Menu」中的項目,用左鍵雙擊一個項目將它開啟,出現在您目前的就是一個虛擬的選單欄了,如圖:
  
p13
  
p14

  
中文化「Menu」項目要注意一些問題,如下圖所示:
  
p15
  
接下來再中文化「Dialog」中的項目。中文化「Dialog」項目時有一個需要更改字型的問題,通常在英文軟體界面中採用的標準字型是「MS Sans Serif」8 號字,而中文軟體常採用「新細明體」9號字,所以應該進行修改,以免中文化後的字太小。首先開啟一個對話框項
目,如下圖:
  
p16
  
這是左鍵雙擊後出現的對話框:
  
p17
  
字型改好後,就可以翻譯對話框中其他的詞句。用左鍵雙擊要翻譯的詞句,就會出現類似上圖的對話框,「Caption:」右邊的橫框中就是您要翻譯的詞句,翻譯它。要注意的是,有一些「\n」、「\n\n」之類的符號是表示換行的,您可以根據需要去添加或刪除它以使界面安排的更美觀一些,如果沒有把握就保留它您。

詞句翻譯完後,進行些微調工作,將字串對對齊、間距調整適當些,讓每個詞句都能完整地顯示出來就行了。看看下面的效果您:
  
p18
   
您發現了上圖中的一個問題嗎 ? 沒有 ? 那告訴您您: 我把「Static」翻譯成了「註冊訊息」,剛剛不是說Static這種字串不要翻譯嗎 ? 怎麼又翻譯了呢 ? 事情是這樣的: 通常做中文化時看見的「Static」等字串在軟體執行時是看不見的,它會被其他有意義的訊息所代替,因此它僅類似於定位或識別符。不翻譯它也就是怕改動後軟體出現問題。但上面這個軟體也許是設計上的疏忽,執行後顯示出來的仍是「Static」,失去了其應有的功能,所以就根據場合把它翻過來了。
  
順便提一下,在所有的對話框中,有一個對話框是很受中文化人歡迎的,這就是「關於」對話框。看看下圖:
  
p19
  
這個對話框通常記錄了一些軟體版本、版權及編寫者的訊息。快找個地方把您大名署上您 ! 地方寬敞的話,再順便署上您的E-Mail和首頁URL,這樣全中國的人都知道這是大蝦您的傑作了,呵呵^_^不過,可得給原作者留些位置哦,如果把他們給擠掉就不太好意思咯。
  

 

好了,對話框都中文化完了您,那麼就開始中文化最後一項: 「String Table」中的項目。同樣是雙擊去開啟這個項目,如圖:
  
p20
  
p21
  
就這樣逐條翻譯,請特別注意在「String Table」項目中出現的「\n」、「\1d」、「\r」 等特殊字串不要隨意刪除、添加和移動它們。
  
至此一個檔案需要用VC++中文化的部分已經完成了,儲存您。且慢 ! 還有一個地方您可能漏掉了。有些軟體把不少有用的訊息居然放在了圖片中,這些軟體中做的最過分的要算 Remove-IT 95 了,它把整個一面板的訊息都做成了一張圖片,看看下圖:
  
p22
  
這麼一大片洋文放在中文化版本中實在是礙眼 ! 所以為了中文化的完美,您應該利用VC++自帶的圖形編輯器將它們翻譯過來。下面是中文化後的圖片:
  
p23
  
那麼到哪去找這樣的圖片呢 ? 實際上它們都在「Bitmap」項目中,您可以在VC++中把「Bitmap」項目中的圖片都開啟看看,把您認為應該修改的圖片處理一下就行了,舉手之勞卻作用不小:-)
  
妥了,直接中文化完成,現在可以儲存了。這裡再強調一次: 只有在WinNT 系統中,中文化後的檔案才能夠儲存,而在Windows95/98系統中,是不能夠保存中文化結果的 !
  
「直接中文化」的具體操作講完了,接下來再看看「批次中文化」是怎麼做的您: 首先同樣需要象前面一樣修改各項目的語系,然後就是把它另存為 .RC格式的檔案,這一步是關鍵 ! 另存為.RC檔案不僅在WinNT系統中可以做,在Windows95/98系統中同樣也可以做。存為.RC格式的方法是: 先在選單欄的「File」中選擇「Save as...」,然後在「Save As」對話框中,將「檔案類型」這項選擇為「Resource Script (.rc)」,再在「檔案名」空格中填入您希望的名稱,按「保存」按鈕就妥了。
  
存為.RC格式時也有一些小技巧,看看下面:
  
p24
  
p25

  
RC檔案得到後,需要用到另一個輔助工具SeaTools 1.0了,這是它執行後的界面:
  
p26
  
可以看出它有 ! 生成對照檔案】 ! 整理對照檔案】 ! 翻譯檔案】 ! 繁簡字串轉換】、 ! 製作新資原始檔案】等五大塊。它的基本原理就是先用原始的資原始檔案 (就是我們剛剛儲存得到的RC檔案) 去生成一個.txt格式的對照純文字,這個純文字中的每句詞句都是分成奇偶兩行成對出現的。將此純文字中的偶數行翻譯成中文,奇數行不動,就得到了一個翻譯後的對照純文字,然後用這個新的對照檔案去套原始資原始檔案,就能生成一個被中文化了的新的資原始檔案,這就是它的目的。如果要中文化一個軟體的新版本,您就可以用老版本生成的對照純文字去套新版本的原始資原始檔案,得到一個新的資原始檔案後,將那些沒有被中文化的詞句翻譯一下,就能馬上得到新版本軟體的中文化檔案了,省了您不少力氣 ! 明白嗎 ? 說的不如看的,還是按下面步驟來您:
  
如果您還沒有一個現成的對照純文字檔案,那就看下面:
  
p27
  
生成了對照純文字後,最好在 ! 整理對照檔案】這一塊中,將這個對照檔案整理一個,刪除那些重複的詞句並排序,這樣做可以使您的對照純文字變小一些。
  
接下來的工作就是翻譯這個對照純文字了。如果嫌麻煩,您也可以在 ! 翻譯檔案】這一塊中讓它替您自動翻譯大部分。不過這樣翻譯的質量實在不敢恭維 ! 我更喜歡的方式是用寫字板開啟它,然後一句一句的翻譯。雖然速度慢點,也累,但是質量能夠得到控制。畢竟嘛,搞中文化總想搞的好一些,如果翻出來的東西讓人家看了哭笑不得,實在是拿不出手,還不如歇著呢 ! 您說是不是 ? 翻譯的原則是: 奇數行不翻譯,偶數行翻譯。
  
對照純文字翻譯完成後,就可以利用它去產生一個翻譯了的新資原始檔案,看下圖:
  
p28
  
新的RC檔案可以和原來的RC檔案放在同一目錄下,不必另建目錄。
  
如果您做中文化做久了,就會積攢下一些翻譯好了的對照純文字,這樣以後做中文化時,可以節省不少的時間和體力。如果您有現成的對照純文字,您可以在上圖中,在「對照純文字檔案」空格內填上它,其他的還照上面一樣填就行了,同樣能生成新的RC檔案。
  

 

那麼對照純文字怎樣積攢呢 ? 如果您中文化了一個新軟體後,請按下圖方式製作對照純文字您:
  
p29
  
每中文化一個新軟體,都這樣處理一下,並把得到的對照純文字檔案透過剪貼集中到一個檔案中,當然每次都別忘了利用「整理對照純文字」的功能整理一下這個越來越龐大的檔案哦。還有一點要特別注意: 請一定保證您的對照純文字中是「奇數行英文。偶數行中文」這樣嚴格對照排列的,否則...很慘咯 !
  
題外話說完了,再看看新的RC檔案得到後,接下來該怎麼做呢 ? 回到WinNT系統,在VC++中開啟這個新的 RC檔案,把每個對話框,選單或其他項目都開啟看看。把還有些沒翻譯的詞句譯過來,翻譯的不夠準確的詞再改改,對話框中如果有些詞句的位置亂就調整一下,以使界面美觀,還有些詞句因過長而沒有完全顯示出來的也處理一下,讓它全部顯示出來。所有的微調工作確認都做完後,儲存但不要關閉這個RC檔案。
  
這時我們再開啟原版檔案,將檔案中「Version」、「Menu」、「Dialog」、以及「String Table」所含的項目統統用Del鍵刪除,然後把RC檔案中對應的項目全部拖過來或複製過來,儲存,這個檔案就算中文化好了。
  
5、BUG問題: 第一階段用VC++中文化的工作到此可以告一段落了。這時候您應該檢查一下這個中文化檔案是否存在問題。軟體中文化由於直接對軟體本身進行了修改,所以也就有了出現錯誤的可能。通常一個檔案中文化完後,應該用它替換原版檔案,然後執行該軟體,看看是否有問題。若沒有問題,再繼續中文化剩餘的檔案,若軟體執行出現不正常的情況,可以用排除法去查錯。具體的做法就是先用原版中「Menu」包含的項目替換中文化版本中的相同項目,如果錯誤仍存在,就再用原版中「Dialog」包含的項目替換中文化版本中的相同項目,如果錯誤沒有了,證明問題出在這些對話框中,您就可以繼續縮小範圍查出具體是哪個對話框的問題了,如果錯誤仍存在,便再用原版中「String Table」包含的項目來替換,總之,要一步一步地,直到查出問題為止 !
  
說到出 BUG,我又要多說幾句了,首先是有一些軟體採用了自校驗等某些加密技術 (通常用在了主程式上) 。如果您改動了它,就會出現無法執行的情況,程式徹底玩完 ! 您忙了大半天的成果成為徒勞。所以為避免出現這種現象,建議您在中文化之前,把此軟體的主程式開啟後改一下語系就儲存,然後執行執行。如果沒問題,恭喜您,OK啦 ! 繼續前進 ! 否則還是趁早拉倒您:-) 如果大蝦您現在正在邊拜讀著我的大作邊同步做著中文化,做到這裡什麼都做完了才發現給堵咯,那我實在是太抱歉了 ! 知道是這樣還不如把這些話放在最前面說呢,也省了您白跑一趟不是^_^
  
還有一個BUG是很有名的,它在中文化界的名氣不亞於AcdSee呢:-) 這個BUG出現在一些特殊的對話框中,現象如下圖:
  
p30
  
p31
  
對這兩種情況現在都有了解決的方法,這裡向朋友們推薦三種解決方法: 第一種方法最簡單,首先用VC++開啟被中文化過的檔案,找到那些有問題的對話框,從而確定這些對話框是在哪個被中文化了的檔案中,然後用中文化工具 Pebble 3.10開啟這個中文化檔案,不需要作任何改動,直接儲存即可。再執行執行程式,問題是不是解決了呢 ? 這種方法的優點就是簡單,但由於在Pebble中儲存的檔案會改變檔案的字節數大小,所以對於一些具有檔案長度自檢驗的程式而言,可能會出現程式儲存後無法執行的問題。
  
第二種方法只需 VC++,不需要其他工具。首先也是用VC++的「Resources」方式開啟這個已被中文化並且包含這些有問題的對話框的檔案,同時把這個檔案的英文原版也按此法開啟。在英文原版中,將「Version」、「Menu」、「Dialog」、 及「String Table」中的所有項目統統刪除 (刪除的方法很簡單,就是選中這些項目然後按一下 Del鍵就OK了) ,但留下那些中文化後就出問題的對話框不要刪除,也不要修改它的語系或翻譯它裡面的詞句,總之就是不要對它做任何改動,這一點很重要,切記 ! 刪除完畢後,再把中文化版本中與所刪除項目對應的資源 (包含那些出問題的對話框) 複製一份到英文原版中。注意: 是將中文化版的項目複製到原版中,不能逆向操作 ! 這樣,英文原版中現在包含的除了所有被中文化的資源之外,還有那些出問題的對話框的英中兩個版本。好了,儲存您,問題解決了 ! 這種方法也是很簡單的,但其局限性在於它只在語系為英語[English(U.S)]的程式中有效,對其他語系的程式就不行了。
  
第三種方法相比之下,可能是最麻煩的一種方法,而且處理後的效果也不如以上兩種方法。但它的優點在於沒有什麼局限性,什麼場合都可用,所以如果您使用上面兩種方法都不成功的話,不妨試試它您 !
  
這種方法的第一步與第二種方法相同,也是用VC++同時開啟出問題的那個檔案的原版和中文化版,並把原版中的資源刪除,只留下那些出問題的對話框,並且不要改動它們,然後把中文化版中與被刪除項目所對應的資源複製過來,這裡要注意的是,不要把那些出問題的對話框的中文化版本複製過來,這一點與第二種方法不同 ! 然後將這個處理後的原版儲存,第一步就完成了。
  
第二步: 您也知道剛才儲存的原版中除了那個有問題的對話框之外,其他的資源都已經中文化了。現在就用CPatch 1.3b 來中文化那個對話框。CPatch 是基於命令行操作的,是一個在DOS方式下執行的軟體。首先開啟Windows的 DOS視窗,然後進入到 CPatch所在的目錄中,將那個儲存後的原版檔案拖到此目錄中。這樣做沒別的意思,只是為了寫命令時寫得短一些。輸入命令: cread kkk.exe (kkk.exe表示原版檔案名) ,隨後會生成一個.Pat格式的純文字檔案kkk.pat,用記事本開啟這個檔案,如下圖:
  
p32.gif (14478 字節)
  
這個.PAT檔案中除檔案頭外,其他所有項目都是按「奇數行為英文,偶數行為中文」的規律排列的。通常它是以「############」來分隔每個對話框或其他資源項目,因此您只要保留那個有問題的對話框部分即可,其他文字一律刪除。同時把漏檢的字補上去,並把翻譯不準確和不規範的地方改好。還有一點很重要: 這裡的英文字串和中文字是一比一計算的,即一個中文字等於一個英文字串,如果翻譯後的中文字數多於英文字串,則中文字多餘部分被自動切掉;如果中文字數少於英文數,則中文化後的界面中中文字不足部分會用空格填滿,相當的難看 ! 因此只要有可能,您都應該盡量使英文字和中文字數相當,特別是對於按鈕上的文字。看看上圖修改後的結果您:
  

p33

  
將這個修改後的kkk.pat檔案儲存,然後在CPatch目錄下執行: cpatch kkk.pat ,就會生成新的 kkk.exe檔案了,執行執行,看看中文化效果如何。如果效果不夠理想,可以反覆修改檔案 kkk.pat並執行命令: cpatch kkk.pat ,直到較滿意為止。當然,這樣中文化的效果是比不上VC++,但這也是沒有辦法的辦法呀 !

 

四、用UltraEdit-32進行第二階段中文化:
  
這個階段的中文化並不是一定需要的,但是從我中文化的經歷來看,絕大多數情況下都要經過這一階段。做過中文化的人大都遇到這樣的情況: 已經在VC++把所有的詞句都中文化了,但是軟體執行後仍然有一些詞句是英文,甚至是大段大段的英文。而且有些詞在VC++中明明是中文化了的,執行後卻還是英文 !
  
遇到這種情況,VC++就無能為力了,只能用UltraEdit-32或其他可編輯16進制碼的工具去翻譯修改。如何翻譯修改各人有各人的習慣,我比較喜歡的是下面的方法,首先在UltraEdit開啟要中文化的檔案,如圖:
  
p34
  
左邊視窗中的16進制代碼是與右邊視窗中的字串對應著的,通常一個英文字串與一個16進制代碼對應,一個中文字則對應兩個16進制碼,例如"r"對應的16進制代碼為"72","宋"對應的代碼為"CB CE"。在左邊的16進制視窗中,有許多特殊的代碼應該知道它們的含義: 20表示一個空格位,2E表示英文句點,0D 0A 表示Enter符,0A為換行符,00則無法用英文字串表示,它相當於一個斷點,起隔斷作用。在中文化時,這些代碼您可以根據場合靈活應用。
  
按鍵盤上的「Ins」鍵,將寫入方式置為「OVR」(覆蓋方式),然後用「PgUp」或「PgDn」鍵從頭到尾逐屏往下翻,在右邊的英文字串視窗中,將出現的英文詞句直接翻譯即可。
  
這種翻譯方式的好處在於能夠比較徹底的翻譯剩餘的英文詞句,因為在執行軟體時,雖然可以發現一些未翻譯的詞句,但您並不能檢查軟體執行遇到的各種情況,所以可能有更多未翻譯的詞句是您發現不了的,如果您僅僅用尋找替換功能去翻譯您發現的詞句,這些未發現的詞句就會給漏了,是不是有些遺憾呢 ? 不過這種方式也有不足,就是速度慢 ! 試想一下,如果軟體較大的話,您逐屏往下翻可是很累的哦 !
  
雖然這種方式較慢,我還是要向大家推薦它 ! 它的好處還有不少,下面會說到的。另外,還要提醒一句的是: 不管您執行軟體時發沒發現未翻譯的詞句,最好都用這種方式查一遍,以免一些未翻譯的詞句漏網。
  
在具體的操作時,有許多需要特別注意的地方,我一條一條地說給您聽您:
  
1、翻譯時不能增加或減少檔案的字節數,而且由於每一句詞句或每一個單元都是用「00」 (是指左邊16進制視窗中的代碼,以下同) 隔開的,所以您也不能更改每一句詞句的起始位置;
  
2、翻譯一句詞句時,翻譯後的中文字數一般不能超過英文詞句的長度 (這裡一個中文字等於兩個英文字串的長度) ,如果這句英文詞句的後面有許多「00」 (16進制代碼) ,那麼也可以超過英文詞句的長度,超出部分填充那些「00」的位置,但必須至少保留一個「00」;
  
3、如果翻譯後的中文字數少於原英文詞句的長度,則在中文字後面至少用一個「00」 (16進制代碼) 將其與剩餘的英文字串隔開,如下圖:
  
p35.GIF (9246 字節)
  
在極少數場合,用00隔開的做法會導致軟體的小問題,這時您可以用空格替換剩餘的英文字串,不過這樣做會使軟體執行後這個界面難看一些,如下圖:
  
p36

  
有一種情況是基本上不能用00進行斷句的,這種情況就是在英文字串後面接了一些類似於「YYYY」之類的字串,這些奇怪的字串也是一種變量,在程式執行時會根據情況被有用的訊息代替。如果用00隔斷,那麼程式執行時就會遺失這些「YYYY」所表示的訊息,所以只能用20替代多餘的位置了 ! 難看一些也是沒辦法的,不知哪位高手有更好的方案 ?
  
4、諸如「%s」、「%d」等奇怪的字串千萬不要刪除或改動,它們通常是一些變量。如果在一個詞句中有一個這樣的字串,您可以在這個詞句內移動它的位置,但不得移出這個詞句;如果詞句中有兩個或更多這樣的字串,那麼它們之間的前後關係不能更改。

5、如圖所示的文字可以不翻譯:
  

p37
  
類似於這樣的與軟體並無任何直接關係的段落還有一些,通常您可以不翻譯,自己掌握您:-)
  
6、通常需要翻譯的詞句都是集中在一起的,所以先找那些詞句集中出現的地方進行翻譯,這種集中出現的情形可能不止一處,耐心的找您:-) 對於那些零散出現的單詞,要小心,它們中很多是不能動的,何況需要中文化的詞句也大多不在這裡,實在要翻譯的也應盡量放在翻譯完比較集中的詞句後再根據需要去做,這樣容易確定哪些單詞是可以動的。
  
7、應該養成每翻譯幾句就存檔一下的習慣,這主要是防止若遇到系統當機等意外現象時,不至於損失太大。而且每次儲存後,及時執行執行軟體,如果發現有問題,也方便您能快速找到出錯的地方。
  
其實用UltraEdit 進行翻譯是件很費功夫的事情,翻譯時很容易導致軟體錯誤,除了上面所說的一些注意事項之外,還要許多的現象需要您在實踐中摸索出應對的方法。總之,翻譯時一是要十分小心,二就是要經常儲存檢查。
  
一個檔案到此就算全部中文化完了,最後一步就是將所有中文化好的檔案製成一個升級檔程式送到線上供大伙分享咯。製作升級檔程式有一些工具可用,我通常喜歡的做法是把這些檔案用WinZip製成一個自解壓包就行了,雖然製成的包大了點,但圖的是個簡單好用,怎麼樣,試試您:-)
  
五、後記:
  
看了上面的介紹後,我想您知道了: 其實搞中文化也不是很難嘛,關鍵是要多動手做做。的確,不管什麼事情都需要親自做了才能掌握它的技巧的。做中文化的人,首先應該努力把自己的中文化做好,水平不足可以在實踐中不斷學習,只要您盡力了,即使暫時做的差點也會得到大家的認可的 ! 其實誰都是這樣過來的呀。但千萬不應該為了圖省事或快速出名而粗製濫造撒下一地垃圾。更不能將別人中文化好的資源大把大把地套出來,然後署上自己的大名 ! 做中文化應該有一種娛人娛己的心情,不要光想著出名。其實您的中文化只要做的好了,自然會得到大家的認可;而如果您總是粗製濫造趕速度,那只能讓大家越來越不願意用您的成果了,您說是不是這個道理呢 ?
  
說了一大堆套話,該轉入正題了。這篇文章主要是為那些很想做中文化卻又不得要領的朋友而寫的。憑心而論,本人目前也是處於邊中文化邊學習別人經驗的時期,也許永遠都是這樣子,所以文章中難免有些囉嗦或錯誤之處是我沒有發現的,還請大家多多見諒並來信告知,同時更希望它不會誤導您前進的方向:-)
  
文章寫作時我參考了目前線上一些中文化人的中文化經驗介紹。要感謝的人很多,就不一一謝了,在此需要特別感謝的是Sea Driver兄經常無私的幫助和為大家提供了許多很好的中文化工具 !
  
六、參考資料:
  
1、『用 Vusial C++ 5.0 完美中文化軟體』 (台灣小正正) --------------2、『小正正的中文化魔法』 (台灣小正正)
3、『用 Glossary 讓中文化更快速』 (台灣小正正) ------------------4、『用 CPatch 1.3b1 使軟體中文化』 (台灣小飛俠)
  
文中所用到的中文化工具均可在本人首頁 ! 新起點漢化工作室】下載。
  

--- 全文完 ---

 

 



回教學