對廣大的編程愛好者來說,最尷尬的事莫過於在執行自己編寫的中文軟件時卻彈出一條英文的提示信息。本文介紹一種快速簡便的方法,對Delphi中的系統提示信息進行漢化。
在Delphi中,定義系統資源字符串常量的源文件(.pas)都放在了Delphi安裝目錄的/Source目錄下,並按其類別分佈在幾個子目錄中,而其編譯後的單元文件(. dcu)則全部放在Delphi安裝目錄的/Lib目錄中,系統編譯鏈接應用程序時會自動從這些單元文件中找到所需的字符串常量將其替換。因此,我們只要將/Source目錄下的源文件中的提示信息字符串漢化後,編譯成單元文件,再將該單元文件拷貝到/Lib目錄中,覆蓋原先的單元文件就可以達到漢化的目的。我們需要漢化某條提示信息時,找到包含該提示信息的源文件,將該提示信息字符串漢化就可以了。
首先,在Delphi中建立一個新的項目,該項目中會自動包含一個名為Unit1的窗體文件,將其從項目中移去。然後從菜單中選擇Project→Options,在彈出的Project Options對話框中,選擇Directories/Conditionals標籤,其中的Unit output directory文本框可以指定項目編譯後單元文件的存放路徑,在這裡填上/Lib目錄的完整路徑,在筆者的系統中該路徑為C:/Program Files/Borland/Delphi5/lib。最後將該項目文件存盤,並取名為HanHua.dpr。至此,這個用於漢化的項目文件就建立起來了,那麼,怎麼利用這個項目文件開始工作呢?下面,我就用一個實例來說明其使用的方法。
在用Delphi編制某應用軟件時,軟件編譯後,在運行時出現提示信息“Delete record?”,其漢化的步驟如下:
1.在Delphi中打開項目文件HanHua.dpr。
2.選擇菜單Search→Find in Files,在彈出的對話框中,在Text to find:文本框裡輸入要查找的文本,在這裡我們輸入“Delete record?”,然後在Where組件框裡選中Search in directories,並在Search Directory Options中輸入/Source目錄的完整路徑,在我的系統中該路徑為C:/Program Files/Borland/Delphi5/Source,最後別忘了將Include subdirectories選中,單擊“OK”按鈕開始查找。
3.在代碼編輯器底部會新增一個窗口,顯示出所有包含你所要查找的文本的文件,在這個例子中,只找到一個文件,顯示“C:/Program Files/Borland/Delphi5/Source/Vcl /dbconsts.pas(100):SDeleteRecordQuestion=''Delete record?'';”,雙擊可以打開該文件,系統會自動將光標移到“Delete record?”前面,將其改為“刪除記錄?”。
4.選擇菜單Project→Add to Project,在彈出的對話框中,系統會自動將當前打開的文件(這里為dbconsts.pas)作為默認打開文件,可以直接單擊“打開”按鈕將其添加到項目中。
5.編譯項目HanHua.dpr。
最後,我們只要把前面的應用軟件重新編譯一次,其提示信息“Delete record?”就變成了“刪除記錄?”。怎麼樣,用這種方法進行漢化是不是又快又準?不過,因為我們是直接在系統目錄中對源文件進行修改,有兩個方面還存在一點問題,其一,如果在修改過程中出現錯誤,就找不到可以參照的源文件了;其二,重裝Delphi後,所有的漢化結果就全部沒有了。所以我們還需要對上面的漢化過程作一點改進,其實,我們只要在上面第3步和第4步之間增加下面這個步驟就可以了:
選擇菜單File→Save As,在彈出的對話框中,將文件換名存盤到別的目錄中。
在增加上面這個步驟後,前面提到的兩個問題都得到了解決:系統源文件沒有被修改,修改後的文件都放在了我們自己的目錄中;重裝Delphi後,只要重新編譯項目HanHua .dpr就可以將以前漢化過的系統提示信息重新漢化。