怎樣編寫支援多國語言的程式, 讓它能夠根據所運行的操作系統自動顯示對應的文字。 而且不但要替換Windows標準對話框, 還要自動替換Form標題、 按鈕標題等所有顯示的文字和所有錯誤提示
作者:孫立 資料來源:Borland 中國http://www.borlandsoftware.com.cn/devsupport/delphi/multilang.shtml 使用Delphi/C Builder的Integrated Translation Environment (ITE)可以輕易得完成這個工作。 我們建立一個Demo的專案檔 MultiLanguage, 在Form上放一個Label和一個Button, 分別把Caption為“English Label” 和“English Button”。
![](http://www.borlandsoftware.com.cn/devsupport/delphi/ml01.gif)
選擇選單Project|anguages|Add ..., Delphi顯示Add Languages對話框, 選擇Next。
![](http://www.borlandsoftware.com.cn/devsupport/delphi/ml02.gif)
從語言列表中選中“英語(美國)” 和“中文(中國)”, 選擇Next。
![](http://www.borlandsoftware.com.cn/devsupport/delphi/ml03.gif)
ITE會根據所選的語言建立子目錄,目錄名稱是語言的縮寫,選擇Next。
![](http://www.borlandsoftware.com.cn/devsupport/delphi/ml04.gif)
第一次增加語言時, Update Mode固定為Create new, 選擇Next。
![](http://www.borlandsoftware.com.cn/devsupport/delphi/ml05.gif)
選擇Finish。
![](http://www.borlandsoftware.com.cn/devsupport/delphi/ml06.gif)
Delphi/C Builder會自動建立支援不同語言的資源動態庫。
![](http://www.borlandsoftware.com.cn/devsupport/delphi/ml07.gif)
Delphi/C Builder還會自動建立一個專案檔, 其中包括原有的MultiLanguages.EXE, 還包括新建的兩個資源動態庫 (MultiLanguages.enu, MultiLanguages.chs)。 保存專案檔。 Delphi/C Builder啟動Translation Manager, 左邊是需要翻譯的語言, 右邊是完成百分比。
![](http://www.borlandsoftware.com.cn/devsupport/delphi/ml08.gif)
選擇“中文(中國)”|Forms|Unit1, 在右邊第15行和20行填寫翻譯後的中文。 保存並關閉。
![](http://www.borlandsoftware.com.cn/devsupport/delphi/ml09.gif)
打開Project Manager, 編譯MultiLanguages.enu和MultiLanguages.chs, Delphi/C Builder會在對應的子目錄生成資源動態庫, 但後綴不是DLL而是ENU和CHS。
![](http://www.borlandsoftware.com.cn/devsupport/delphi/ml10.gif)
有三方法可實現語言切換:
1.把所有的語言包(.DEU,.ENU等文件,和Exe文件同名)放在和Exe相同的目錄下,
它就會根據系統的語言環境自動選擇。
2.採用Demos\Richedit示例演示的方法。
3.在注冊表HKEY_CURRENT_USER\Software\Borland\Locales\中指定可執行文件的
路徑\文件名和語言包的擴展名,Exe文件會查詢該鍵值切換語言。其實在Delphi/BCB
的Project\Languages\Set Active...菜單中的操作就是修改該鍵值。
在Delphi 5 帶的Demos\Richedit 示例演示了動態切換語言的技術。
請仔細研究它的源碼。在自己的程序中使用可能要借用到它的一些Unit。
時間就是金錢---
[ 發問前請先找找舊文章] 發表人 - axsoft 於 2002/07/26 16:38:58