Make your own free website on Tripod.com

一步一步學做軟體中文化--- (Borland C++ 篇)
新起點漢化工作室 阿濤
刊登於<<配套光碟99.4春節特刊>>,請勿擅自引用 !


  
現在寫 BC++ 的中文化文章似乎有些過時,畢竟目前對於C語系所編程式的中文化在技術上已經相當成熟了,而且也有了許多類似的文章,當前各位中文化人的重點還是放在了DELPHI程式上。不過,縱然DELPHI程式需要特別關注,我們也應該看到C語系所編的軟體仍然是相當的多 ! 另外,就目前已有的中文化C語系所編程式的方法而言,我感覺BC++仍然是一種非常方便和自由的方法 ! 感於目前 BC++ 中文化的文章寫的比較簡略,而且對 BC++ 中文化時容易出現的問題也沒有涉及,所以我結合一些朋友提供的經驗和自己在用 BC++ 做中文化時摸索出的一些小技巧,乘著本人上次創作《一步一步學作軟體中文化--VC++篇》的餘興,斗膽再塗鴉一筆,為各位奉上本篇。至於DELPHI程式的中文化方法,將是本人下次寫作的物件,容以後奉獻:-)

本篇的寫作為了更好地說清楚問題和兼顧許多對中文化方法還不夠熟悉的初學者,費了不少筆墨。如果您已經是一位中文化高手,可能會覺得太囉嗦了,呵呵,見諒見諒 ! 從我的感覺來說,囉嗦些倒還可以忍受,萬一費了老半天工夫還沒寫明白,招來一陣罵聲,然後被扔得一頭雞蛋爛橘幾的,不划算哦,哈哈 !

好了,聲明以及廢話就說到此,下面正式開始。嗯嗯,肅靜 ! ^_^

一、開篇的幾個問題:

1、Windows 軟體分哪幾種 ?

真是個大話題呀,呵呵 ! 不過從中文化的角度而言,我暫且就把 Windows軟體分為兩種類型。如果您用一個中文化工具 (比如BC++) 以資源編輯的方式開啟一個程式,您或許可以看到,很多程式中有「STRING TABLE」、「DIALOG」、「MENU」等資源項目,這類程式大多是用VC++或BC++編製的,我們暫且稱它為「第一類程式」;還有一些程式,開啟後您將發現它們缺少「MENU」、「DIALOG」這兩項最重要的資源項目,多出來的則是一個「RCDATA」項目,您在程式執行時看到的絕大多數文字都集中在「RCDATA」項目中,這類程式一般是用 Borland C++ Builder 或 DelPhi編製的 (或許也可以包括 VB 編製的) ,我們把它稱為「第二類程式」您。

文章的開始就講軟體的分類,當然不是無中生有、沒事找事啦,這都是為了下面的講述方便,因此如果您對中文化或程式分類還很陌生的話,拜託您能留意上面的這些內容,也免得看了半天文章還沒明白在講什麼:-)

2、BC++是個什麼樣的中文化工具 ?

簡言之,BC++與微軟的VC++一樣,都是中文化第一類程式的中文化工具,也是這類工具中功能最全最自由的一個 ! 本人在此文之前的拙作《一步一步學做軟體中文化 -- VC++篇》,看過的朋友相信應該清楚了VC++的中文化功能,BC++的功能與VC++有很大的相同之處,與VC++是各有優缺點,這點我們會在下面慢慢分解的。

BC++能不能中文化第二類程式呢 ? 回答是不能。第二類程式中如果有少數「DIALOG」、「STRING TABLE」項目的話,可以採用BC++處理它們,但第二類程式的核心部分是在「RCDATA」,而這偏偏是BC++中文化不了的地方,所以BC++對第二類程式無能為力了。

3、目前有多少種中文化工具 ?

沒數過呀:-) 目前中文化界出現的中文化工具真多真多,再加上許多輔助性質的配套中文化工具,要是全部列出來,怕花了您的眼哦。這麼多中文化工具我可沒全部試過,我認為也沒必要去一個個的用,最要緊的是找到一個好用的工具,您說是不是呢 ?

至於中文化工具,我感覺常見的大致有: 東方快車2000、即時中文化2000、VC++、BC++5.02、Pebble 3.1、Exescope、Visual Localize、Language Localizitor、Microsoft LocStudio等等等等。

按自動化程度來分,東方快車2000、Visual Localize、Language Localizitor、Microsoft LocStudio、即時中文化2000等工具的自動化程度較高,因為它們都採用了字典功能,可以預先用字典進行初步的翻譯;VC++和BC++則大概只能算是半自動化的工具,因為它們本身不具備字典預翻譯的功能,但可以借助一些輔助的中文化工具進行自動處理;剩下的Pebble和ExeScope本身也不具備自動翻譯功能,與之配套的輔助自動中文化工具好像也沒怎麼見過,所以自動化程度算是低的了。

按功能來進行區分,Visual Localize、Microsoft LocStudio、VC++、BC++、Pebble屬於中文化第一類程式的工具;Exescope、Language Localizitor則是最適合中文化第二類程式的強悍工具;剩餘的東方快車、即時中文化2000與傳統的中文化工具似乎有些不同,它們對兩類程式都可以進行一定程度的中文化,再說的具體些我就不知道了,沒用過,呵呵:-)

評價一個中文化工具的好壞應該綜合來看,從本人做中文化的經歷來看,我覺得: 易操作性、自動化程度、適用的軟體範圍、翻譯的準確性、字典管理的方便性、中文化時的自由性、中文化時所見即所得的程度、中文化升級程式的方便性、自身的管理能力等都是評價中文化工具好壞的關鍵性指標 !

4、為什麼要推薦BC++ ?

自然是因為它的綜合性能好啊 ! 雖然它只能中文化第一類程式 (要中文化第二類程式的話就得找別的工具了,我會找個時間另外推薦的,本文就不多說了) 。

VC++也是一個綜合性能領先的中文化工具,我已經推薦過了,但是由於它不能在Win95/98系統中直接保存修改過的程式,只能在WinNT 或Win2000中儲存,所以令許多朋友望而卻步 !

而BC++在這點上就很優秀啦 ! 它可以在任何系統中直接保存修改後的程式 ! 當然僅憑這點是不值得本人推薦的,而且如果按照傳統的方法做中文化的話,BC++的易操作性在最關鍵的時刻要比VC++遜色不少。那麼,我憑什麼要推薦它呢 ? 這主要還是因為它在其他方面與VC++比較還是各有所長的,而且有了本文即將提到的一些新方法和新工具輔助後,BC++中文化儲存後容易出錯的毛病解決了,操作煩瑣的問題也消除了,因此也就獲得了被推薦的資格 ! 具體詳情還請繼續往下看:-)

二、中文化前的系統準備:

1、作業系統: Win95/98/2000 簡體中文版

2、中文化工具: Borland C++ 5.02 或者 BC++ 5.02 中文化專用簡化版

3、輔助工具: 金山詞霸或者其他翻譯工具、SeaTools 1.0、Pebble 3.10、UltraEdit 5.0、資原始檔案替換管理器 (新工具 ! 也是本文將要隆重推薦、具有震撼性的絕好工具)

以上中文化工具、輔助工具及相關文章均可從本人的新起點漢化工作室 (http://jwjjt.yeah.net) 得到,大家不必擔心:-)
三、中文化準備和基本知識:

今天我們以中文化 CuteFtp 3.5.4為例來給大家示範中文化過程。由於BC++與VC++中文化的步驟基本相同,所以我將把側重點放在闡述兩者相異的地方,個別細節和概念還請參閱本人的一步一步學做軟體中文化 -- VC++篇》。

1、首先我們安裝好 CuteFtp 3.5.4,為了在中文化時便於管理中文化檔案和備份原檔案,我們先在 CuteFtp的目錄下建立兩個幾目錄「Backup」和「Chinese」;

2、檢查 CuteFtp目錄及其幾目錄,將所包含的 .exe、.dll、.drv 檔案全部複製到 Backup 目錄中;

3、執行 BC++ 5.02,從選單欄的 File 中選擇 Open...,這時就出現了一個對話框,如圖:
  

hh1.gif (8014 字節)

  
按照上圖的提示在 Viewer 一欄中選擇 Edit Resources 方式,在「檔案類型」一欄中選擇 All files,然後轉到 Backup 目錄,選擇一個檔案 (例如圖中所示的 cutftp32.exe) ,按「開啟」按鈕開啟它,就看到下圖了:
  

hh2.gif (14177 字節)

  
從上圖您可以發現,原來BC++操作界面也是分為左右兩欄的,左欄列出了程式中所有的資源項目,點擊每個資源項目旁邊的加號就會列出該資源項目所含的具體資源分項 (怎麼這麼囉嗦呀 ! 唉,沒辦法,有朋友說我那篇VC++的文章寫的還不夠囉嗦,所以就......,懂的朋友將就點看您 ^_^) ,對於不熟悉中文化基本知識的朋友我還是要多說一句,那就是每個資源項目都相當於一個檔案夾,我們要中文化的不是該檔案夾本身,而是檔案夾中的各個分項 (例如圖中DIALOGEX項目中的 100、102 分項) ! 用滑鼠雙擊一個分項,就可以開啟它並進入編輯狀態,從而對該分項進行中文化了。好了,我們再看看右欄。右欄顯示的是在左欄中被選中之分項的預覽圖形,圖形預覽是BC++中一項非常好的功能,它可以讓您快速查看每個資源分項的實際圖形。如果您想尋找某個分項,就不需要每個分項都雙擊開啟看它的圖形了,只需用預覽功能一個個的預覽即可,就像是在Windows 資源管理器中一樣,非常的方便 ! 另外這也是BC++優於VC++的地方之一,VC++可沒有預覽圖形給您看哦,如果您在VC++中要查看一大串的資源分項或找某個分項,就只好逐一開啟它們呀,累死您^O^

繼續看上圖。在左欄中我把中文化時可能要更改的資源項目打了勾。「MENU」是選單項,「DIALOG」和「DIALOGEX」均為對話框 (在VC++中,這兩項被統一標識為 「DIALOG」,這是VC++和BC++的又一個不同點) ,「STRINGTABLE」是字串表項目。

以上說的這幾個項目在BC++或 VC++中都是可以中文化、也必須中文化的地方。剩下的「DLGINIT」項目,它包含的是某些對話框內下拉式選框中的內容,也是需要中文化的地方,但在BC++或VC++中都無法把這些內容以可翻譯的文字形式顯示出來,所以暫時還不能立即中文化,一般只能留到後期用 UltraEdit進行處理或用 Pebble 中文化它。

另外還有「BITMAP」項目,裡面可全是點陣圖,因為有些點陣圖中也包含了部分文字,所以您可以根據需要把這些文字中文化。當然中文化點陣圖中的文字實際就是進行圖形處理,BC++自帶了點陣圖編輯器,您只需雙擊要修改的點陣圖,就可以進入編輯狀態去修改了。

4、按上面的方法把 Backup 目錄中的所有檔案逐一開啟看看,如果在檔案中不包含任何打勾的項目,那麼這個檔案就不需要中文化了,把它從 Backup 目錄中刪除掉,最終使該目錄中剩下的都是需要中文化的檔案。

5、把 Backup 中剩餘檔案複製一份到 Chinese 目錄中,今後我們就中文化 Chinese 目錄中的檔案,Backup目錄就作為備份,不動它 !
四、直接中文化:

本人在一步一步學做軟體中文化 -- VC++篇》中曾詳細介紹過,用VC++中文化有「直接中文化」和「批次中文化」兩種方法,BC++其實也一樣。我先從直接中文化開始說您。

所謂直接中文化,就是直接開啟要中文化的檔案,逐字逐句手工翻譯它,然後直接儲存的意思。首先還是按上面的方法開啟一個要中文化的檔案 (例如 cutftp32.exe) ,然後按下列步驟開始您:

1、中文化選單項目 (MENU) 。看看下面的圖您,MENU 項目中有好幾個分項:
  

hh3.gif (12984 字節)

  

這裡有13個分項需要中文化,我們一個個的來。先雙擊分項2,得到下圖:

  

hh4.gif (12259 字節)

  
按此圖的方法提示將分項中的每個詞翻譯過來,完成後關閉此視窗,回到主界面中,再選擇另一個選單分項進行中文化,直到把所有選單分項全部中文化完。

2、中文化對話框項目 (DIALOG、DIALOGEX) 。同樣我們需要一個分項一個分項的中文化。另外,對話框的中文化涉及到一個更改字型大小的問題。在英文軟體中,通常採用的是8號字,而中文軟體通常採用「新細明體、9號」,所以我們需要更改字型,以使得對話框界面美觀。就以中文化上面圖二中的 100 分項來示範您,同樣雙擊 100 分項,進入對話框編輯狀態,如圖:
  

hh5.gif (10115 字節)

  
首先我們要設定該對話框的全局內容,包括字型及標題行文字的中文化等。按上圖方法開啟對話框的內容設定視窗:
  

hh6.gif (12717 字節)

  
對話框全局內容設定完成後,我們就可以中文化框內的每個字串了。當您點中一個字串時,該字串會呈現被選中狀態 (出現字串框) ,繼續雙擊此字串,將開啟它的內容視窗,這個視窗類似於上圖的全局內容視窗,您將在此視窗中找到需要中文化的字串,把它中文化過來並關閉視窗即可。

依次中文化每個字串。要注意的是,由於某些字串中文化後可能過長,造成部分尾巴被遮住顯示不出來的情況,我們需要對此進行調整。調整很方便,首先點擊此字串,使一個藍色點狀的可調邊框出現,然後按下圖調整:
   

hh7.gif (8362 字節) hh8.gif (5271 字節)

  
至此一個對話框就很完滿的中文化完成了 ! 且慢,還有一些細節我必須得提醒一下。首先是剛剛講到的字串被遮住的問題,雖然我們已經調整了字串框的長度,看到字串不再被遮住了,但實際效果未必如此 ! BC++在做中文化時有個小問題,就是對話框在編輯狀態中呈現的情況與實際情況有些偏差,您在編輯狀態看到字串不再被遮住,而實際中卻不一定 ! 這是BC++不如VC++的地方。那麼我們怎麼才知道實際情況是怎樣的呢 ? 難道要執行中文化後的程式看看嗎 ? 不 ! 您還記得圖形預覽功能嗎 ? 對了,預覽的圖形與實際效果是一樣的,沒有偏差 ! 所以字串框調整後,您還需要看看它的預覽圖形,如果字串仍然被遮住,就繼續調整。

第二個要注意的問題以前我也提過,就是有些字串是不需要中文化的,諸如 Stasic、 User1、Process1 等與程式內容無關或意思不明的詞。這些字串有時候是被程式用來做記號的,如果您改動了它,程式找不到該記號,就可能要出問題了。怎樣判別一個詞是否是程式的記號,關鍵在於多中文化,多積累經驗,另外盡量避開一些莫名奇妙的詞也是必要的,現在清楚了嗎 ? ^_^

3、中文化字串表項目 (STRINGTABLE) 。 基本操作與中文化選單或對話框差不多,也是雙擊一個資源分項去開啟它,然後就出現下圖了:
  

hh9.gif (9740 字節)

  
從圖中可以看出,中文化字串表還是很簡單的,既不需要更改字型大小,也不需要調整什麼框的長寬高度,基本就是一個純純文字的翻譯過程。不過這個純純文字翻譯起來,也不是無所顧忌的,有些事項還是需要注意一下。

首先您會發現所有的字串是被「{」和「}」括起來的,所以中文化時別把括號弄丟了。另外每一條詞句均被雙引號圍住,您需要中文化的是雙引號中的內容,雙引號也不能丟 ! 還有就是有一些特殊的符號,比如「\n」、「\r」、「\042」、「\t」等,它們分別代表換行符、跳格符或引號之類的東西,如果您很瞭解它們,您可以根據中文化的需要進行更改或刪除,否則最好保留為妙哦:-)

把字串表中文化完成後,三大件都做完了,剩下的一點小尾巴大概就是 BITMAP 項目了您 ? 把這些點陣圖都預覽一遍,看看有哪些圖中有字需要翻譯的,然後就開啟它處理處理。最後的步驟就是...Save,儲存呀 ! 執行執行您中文化的程式,怎麼樣 ? 爽不爽^_^

直接中文化到此講完 ! 看過我那篇 VC++ 中文化文章的朋友可能記起來了,用VC++中文化需要首先更改每個資源的語系,挺麻煩,而用BC++中文化沒有講過要改語系呀 ? 是的,用BC++中文化的確不需要更改語系,這也是BC++優於VC++的另一點:-)

直接中文化從過程上來說,步驟是最少的,但它有一個很大的不足就是每個資源都需要手工中文化,工作量很大,所以一般情況下是不會這樣干的。通常做中文化的人都喜歡採用能減少工作量的方法,比如採用字典什麼的幫忙進行預先的自動中文化。用BC++中文化也可以採用字典和輔助工具進行一定程度的自動中文化,這就是我接下來要講的批次中文化方式。

既然大家都用批次中文化,那我為什麼還要講半天直接中文化呢 ? 耍您 ? 當然不是 ! 批次中文化只是在直接中文化的基礎上進行了一些自動處理而已,其根本的中文化方法和原理還是與直接中文化類似,講述直接中文化,就是要講清楚BC++中文化的基本原理和方法,反正現在不講,到了講批次中文化時還是要講的,不如先講算了:-)

好了,我們接著講BC++的批次中文化方式。
五、批次中文化:

BC++的批次中文化方式與VC++的基本相同,也是需要先將要中文化的檔案格式轉換成 .rc格式,然後用輔助中文化工具對這個 .rc檔案進行初步的自動翻譯,最後將全部中文化完成的.rc檔案匯入到原檔案中,中文化即告完成 !

還是以中文化 cutftp32.exe 為例。第一步與直接中文化相同,就是在BC++中以 Edit Resources 方式開啟這個檔案,開啟後,並不需要做什麼動作,只需從選單欄的 Files中選擇 Save as... (另存為...) 就行了,馬上會出現以下對話框:
  

hh10.gif (5911 字節)

  
怎樣儲存,圖中已經表示的很清楚了,儲存的結果是得到了一個RC檔案。BC++產生的RC檔案與VC++產生的RC檔案相比,您會發現VC++產生RC檔案時,還同時產生了許多的其他檔案,顯得有些不好管理;而BC++產生RC檔案時,僅此一個,並不會產生其他的檔案,所以這一點BC++比VC++要好 !

得到了RC檔案,接下來就用輔助工具 SeaTools 1.0 對這個RC檔案進行一些初步的自動處理。關於該輔助工具的用法以及對照純文字 (即字典) 的概念,在我的那篇《一步一步學做軟體中文化 -- VC++篇》中已有詳細的說明,這裡我就不重複闡述了。看下圖:
  

hh11.gif (11674 字節)

  
啟動 SeaTools 後,首先轉到 ! 製作新資原始檔案】頁,然後按圖中提示輸入各項。需要注意的是,實現這個功能,您必須已經有一個對照純文字檔案才行,至於如何製作一個對照純文字檔案,呵呵,還是見那篇VC++中文化文章:-)

等到所有空欄和選項設定好以後,按 ! 開始製作】按鈕,稍候片刻就得到了一個新的RC檔案 (在這裡我得到的新RC檔案名稱是 p-cutftp32.rc) ,退出SeaTools,再用BC++開啟這個新的RC檔案,您會發現所有需要中文化的資源中,已有部分資源得到了中文化,並且所有對話框的字型大小已經被設定成了「新細明體,9號」。

現在您要作的事情就是:

(1) 、把那些尚未中文化的資源繼續中文化完;

(2) 、檢查每個對話框,看看是不是有字串被遮住的情況並加以調整;

(3) 、檢查每個已中文化的資源分項,特別是對話框資源,看看是否有不該中文化的字串被中文化了,若有則改回來;

(4) 、檢查 BITMAP 項目,看看是否有點陣圖需要修改中文化的。

(5) 、所有工作完成後,儲存即可 !

新的RC檔案至此已完全中文化好,但這只是一個RC檔案,並不是經過中文化的 cutftp32.exe 檔案,所以我們還需要把這些中文化後的資源替換到 cutftp32.exe 檔案中去。

我們先看看傳統的替換方法您。大家一定記得在使用VC++進行中文化時,也是有這樣一個替換過程的,而在BC++中的這種替換與VC++中的替換方法基本是相同的,原理也一樣,但不足的是,BC++中的這種替換遠沒有VC++中的替換方便,操作要煩瑣許多,讓我們具體看看如何替換您:

(1) 、首先在BC++中,同時開啟未中文化的原程式檔案 cutftp32.exe 和中文化完的新RC檔案 p-cutftp32.rc;

(2) 、把原程式檔案中 「MENU」、「DIALOG」、「DIALOGEX」、「STRINGTABLE」、「BITMAP」等資源項目中的分項刪除,要特別注意的是,被刪除的分項是那些在RC檔案中被中文化或被改動了的項目,如果一個分項在RC檔案中沒有進行任何改動的話,那麼它在原程式檔案中就不需要刪除掉。

在VC++中刪除資源項目是很方便的,因為可以將一大片項目一次性刪除,而在BC++中就不行了,它不支援這種成片刪除方式,因此您就只能一個分項一個分項的刪除 (嘿嘿,如果資源分項很多的話,您就慘了 ^_^)

(3) 、將RC檔案中已被中文化且對應於所刪除項目的資源分項一一複製到原程式檔案中。同樣,由於BC++即不支援拖放操作,又不支援成片複製剪貼,所以這個複製剪貼過程也是很煩瑣的,但為了得到盼望已久的中文化檔案,唉,就認了您 !

(4) 、所有的複製過程結束後,將原程式檔案儲存,一個採用批次中文化方式製作的新程式檔案就這樣產生了 !

(5) 、再接再厲,把 Chinese目錄中的檔案 (沒有忘記我們中文化的檔案均是該目錄中的您 ? ) 按我給您介紹的方法逐一中文化完成,整個BC++中文化的過程就全部結束了 !
  
六、中文化後的防錯處理:

很奇怪呀,什麼叫防錯處理 ? 難道BC++中文化過的程式會出錯嗎 ? 嘿嘿 (本人訕笑一聲) ,是有這種情況呀。從我使用BC++中文化的情況看,BC++中文化後的可靠性不如VC++高,有些程式中文化後會出現無法執行或一些不易察覺的錯誤,所以如果不進行一些必要的後續防錯工作,BC++中文化法就沒有什麼推薦的價值了 !

BC++中文化的後續防錯方法經過本人和其他朋友的摸索,已經找到了一些。特別是王孝宏先生提供的防錯法,不僅防錯,還大大簡化了BC++中文化中將RC檔案替換到原程式的煩瑣過程,而且更令人興奮的是,這種方法對VC++也是同樣有效,並使得VC++中文化時即使沒有 WinNT作業系統也一樣可以進行資源回寫,從而得到已中文化的程式檔案,實在是非常的棒 ! 本文將會在下面做詳細的說明。

首先還是介紹本人摸索的一些防錯方法您。正像本人的習慣,好東西喜歡留在後面享用,我把王先生的方法留到後面講,請各位稍安勿躁:-)

方法一、本人摸索的方法。我使用的工具就是 Pebble 3.10。Pebble本身也是一個不錯的中文化工具,可以中文化第一類程式。不過我很少用它去單獨中文化一個程式,原因就在於它沒有批次中文化功能 ! 另外經它中文化的程式,字節數一般都發生了變化,對於個別具有自檢驗檔案大小的程式來說,這個工具就不太適用了。

雖然 Pebble 單獨做中文化不太行,但我發現用它對BC++中文化過的程式進行防錯處理還是很有效的。一般那些經BC++中文化後出錯的程式,如果用 Pebble 開啟它就會發現,裡面的資源順序發生了混亂,但經過 Pebble 的處理後,順序又恢復了正常,錯誤就消除了 !

這種防錯法的具體操作也是一個替換過程,類似BC++中將RC檔案替換回程式檔案的過程,但比那種替換還是要方便許多,因為在 Pebble 中是支援成片刪除和複製的 ! 我們還是以中文化後的程式檔案 cutftp32.exe 為例來說明您。

首先必須要準備好經過BC++中文化的 cutftp32.exe 檔案和未經過中文化的 cutftp32.exe 原檔案,然後啟動Pebble,並在 Pebble 中,同時開啟這兩個 cutftp32.exe 檔案,如圖:
  

hh12.gif (16056 字節)

  
我使用的 Pebble 是中文化版,所以大家看到的 Pebble 選單欄和視窗中的「MENU」、「DIALOG」等項目都已經是中文的了,不過這應該不會影響大家的思路的。

也許您發現了,開啟後的視窗與BC++中的差不多,也是左右兩欄的。不同的是左欄只有資源項目,而每個資源項目中的分項全部移到了右欄中。我們首先轉到未中文化的程式檔案視窗,在右欄中把需要替換的資源分項全部一次性選中,然後按工具欄中的「剪切」按鈕 (Pebble中沒有刪除功能) ,接著轉到已中文化的檔案視窗,把對應的資源分項也全部一次性選中並按「複製」按鈕,再轉回到未中文化的檔案視窗,直接按「剪貼」按鈕,一大塊中文化過的資源就拷過來了 !

依照此法,不停的剪切、複製、剪貼,直到完成所有的替換工作 (並不需要多少時間) ,最後將替換好的程式檔案儲存,一個消除了錯誤隱患的中文化檔案就做好了 !

此法的可靠性經本人多次驗證,還是不錯的,不過由於 Pebble 本身的局限性,所以此法是否適用於那些具有自檢驗檔案大小的程式還不清楚,因為我至今未遇到這種情況。

使用此法有些常出現的問題,大家請注意,這就是:

(1) 、Pebble一次不能剪切或複製太多的資源分項,特別是對於「字串表」 (STRINGTABLE) 這個項目,如果裡面有成百上千條分項,最好是一部分一部分的替換,不要一下幾全部拷過來,免得出錯 !

(2) 、也是在「字串表」項目中,有時候會有個別條目是不能被替換的,只要一替換 Pebble 就會出錯並退出,所以對這種問題,您可以採用排除法,逐步縮小範圍,找到那個條目,直接把它中文化,而不要對它進行剪切、剪貼操作,問題就解決了 !

(3) 、在右欄的上方,有一個數字,它表示的是右欄中當前顯示的條目數,在進行替換時,請記得看看這個數字在替換前與替換後是否有不同,如果出現不同就應該查一查丟掉了哪一條 (通常容易把尾巴上的那條丟掉) !

我的防錯法就說完了,最後大家注意到了左欄中的 240 項目嗎 ? 這就是我們在BC++中看到的 DLGINIT(240)項目,就是我說的那個需要中文化但BC++又無法中文化的資源項目,在 Pebble 中您可以中文化它了,也免得最後用 UltraEdit 去艱難地尋找 ! 當然,這一點也是接下來要介紹的王先生的防錯法所不具備的哦:-)

方法二、王孝宏先生的防錯法。這可是一個很棒的防錯法呀 ! 說句不好意思的話,如果早知道有這樣的方法,我可能就不會自己再去摸索別的方法了^_^ 這個方法使用的工具就是我要給大家推薦的----
資原始檔案替換管理器。據王先生的介紹,這個工具其實是從BC++和Borland C++Builder中分離出來的,它的作用就是把RC檔案 (或 RES檔案) 中的資源匯入到原檔案中,從而達到中文化的目的 ! 它的最大優點在於不僅適用於BC++中文化時的資源匯入,對VC++中文化時的資源匯入也同樣的有效,根本無需NT系統 ! 另外我們也知道,無論是BC++還是VC++,在將RC檔案替換回原檔案時,總是要不停地複製、剪貼,BC++在這方面更是要命 ! 而這個只需簡單的一行命令,瞬間就可完成煩瑣的替換工作,相當的方便 !

說到VC++,我又想多說幾句了。一直以來,VC++中文化需要NT系統的問題困擾了許多愛好中文化的朋友,不做服務器的話,誰願意裝個NT玩呢 ? 可沒有NT您,VC++就成了半截殘廢。雖說WINDOWS 2000出來了,但像我輩這樣的破機幾能不能養得起那條大魚還是個問題呢。台灣中文化聯盟有人研究了很久VC++在Win95/98下的儲存問題,一直沒有結果,他們研究的好像是正面解決的方法。而王孝宏先生的這個工具,從我的感覺來說,它並不是正面解決不能儲存的問題,而是一個很巧的側面解決法,然而令人意想不到的是,這種方法使得問題的解決竟然如此的簡單,讓人用過後不免歎一句: 啊,原來就是這樣啊 !

好了,
資原始檔案替換管理器的概況我就先講這麼多,更多便利之處還有待各位去發掘啦。接下來就講講怎麼用您。

首先安裝好該程式 (建議完全安裝) ,然後在開始選單中您會發現多了「資原始檔案替換管理器」這一項,執行它,一個很簡單的界面就出現了,如圖:
  

hh13.gif (5129 字節)

  
從界面可以看出,這個工具不僅可以把BC++生成的RC檔案資源匯入到原程式中,還可以把VC++生成的RC檔案資源匯入到原程式中,另外,還可以把RES檔案中的資源匯入到原程式中 !

既然是把資原始檔案 (.rc,.res) 匯入原程式,那麼您肯定是需要有一個已經被完整中文化了的資原始檔案了。所以您應該採用我們上面說的批次中文化的方法,得到一個已經中文化的RC檔案,然後在上圖的「檔案名」一欄中輸入這個RC檔案 (含路徑) ,在「目標檔案」一欄中輸入對應的原程式檔案 (EXE、DLL、DRV 等) 的名稱和路徑,最後還應該在「資原始檔案類型」框中選擇好您的RC (或 RES) 檔案的相應類型,然後按「替換」按鈕,一切 OK 了 ! 好好體會一下,這種方法是不是很方便呢 ?

七、最後的中文化處理:

到上一章節結束,想必一個經過BC++中文化,又經過防錯處理的程式已經產生了您 ? 您可以馬上將它用於實際中。不過對於大多數程式而言,如果要想中文化的更加完美的話,就還有一些工作要做了。我在那篇VC++的中文化文章中也說過,許多程式經過VC++或BC++中文化後,在執行時仍然可以發現有部分文字還是英文的 !

像這種情況目前還沒有一個專門的中文化工具去中文化它,通常的辦法就是使用純文字編輯工具 UltraEdit去尋找並替換這些字串。

關於 UltraEdit修改這些字串的具體辦法,我在上次的文章《一步一步學做軟體中文化 -- VC++篇》結尾已經做了較詳細的說明,大家可以參考它,這裡不再囉嗦了。如果大家對那個說明還覺得不夠的話,就請多多見諒呀,今後看情況我再補一些^_^ 不過UltraEdit 的修改過程相對其他中文化工具而言,的確不太好掌握,也沒有多少定規可循。程式編的爛,大家就要累一些,用 UltraEdit修改的字串也就要多一些,好的程式基本上是不需要用 UltraEdit做什麼修改的,我喜歡中文化的就是這樣的好程式,不知各位以為如何 ? ^O^

另外我覺得,用 UltraEdit進行修改的過程實際也是一個比中文化功力的過程。目前的中文化工具很多,在使用上也越來越容易上手和掌握,在這個中文化階段,只要您自己認真些,都可以做的很好的,唯獨最後階段用 UltraEdit修改的過程,由於沒有規律可循,所以是各顯其能的地方,不僅要細心,還要能善於摸索規律,積累經驗,這個工作才能做的越來越好 ! 如果您是一個中文化愛好者,有意在中文化技術方面進一步提高的話,不妨多在這裡下點功夫,一定會得到很好的回報的。我的這些經驗也不是很成熟,只希望能給初入門的朋友提供一些方便,排除幾顆地雷。如果您是這方面的高手,還請多多賜教呀 !

八、一些後話:

文章的最後,首先需要特別感謝王孝宏先生提供的諸多技術幫助和非常好用的 RCShell 1.0 (資源替換管理器) ! 另外,如果沒有他的催促和支援,這篇文章還不知要拖到什麼時候問世^O^

需要感謝的人還有很多,包括許多不知名的支援我的朋友,是他們給了我不少很好的建議和中文化的動力 !

本文與上次那個VC++中文化篇是姊妹篇,所以像那篇文章一樣,也是吸收了此前問世的諸多文章的經驗後寫成的,同樣對這些文章的作者表示最衷心的感謝 ! 所參考的文章名稱請參閱VC++中文化篇,恕本人在此不重複列出了。

本文中所涉及的中文化工具,在本人首頁上均有下載,如果您需要,可到敝舍來拿:-)

最後的最後,如果您看了本人的文章,或者您也在使用BC++做中文化,還請多多反應意見,以便本人在今後的文章中寫的更到位,多謝 !
 



回教學