Delphi一直以來都沒有為多國言語(Multiple Language)提供太多的支持, 使應用程序難以實現國際化,當要開發一個跨國際的應用程序時,就遇上重重的困難。作者本人2001年初曾參與編寫一個電子報關的應用程序,程序會用在中國,美國,香港及台灣等地,以後還打算用在日本及韓國。這個時候,應用程序就必須能同時能輸入多國語言文字,而且能在同一個操作平台輸入多國語言。由於當時剛用Delphi,在多國語言文字方面走了很多的彎路。 Delphi在多國語言上沒有下太多的功夫,所以在開發多國語言時,就很困難。以前也問過Borland的工程師關於多國文字的問題,但都隱約其詞。看來,要實現這個功能只能自已想辦法。Microsoft? Word使我對實現多國語言有了一線希望,因為它能實現多種語言文字的輸入與打印。
分析: 1.在應用程序開發中,應用程序要實現多國語言,必須用Unicode,因為只用Unicode才能同時容納世界上的所有文字的及其內碼,才能在同一張窗體上實現多國語言。 2.它受到操作平台的限制。上面說過了,只用Unicode才能實現多國語言並存的問題, 所以操作平台必須以Unicode為基本內碼。Microsoft? 的操作平台中只有Windows NT?以後版本才支持,所以後面的內容都以Windows NT?內核技術平台為主。至於Microsoft? Word為什麼能在Window9x中實現多國語言,我現在還不知它搞了什麼高招,因為Windows9x天生的缺陷與Windows9x將會被淘汰,所以我不打算在Winows9x上想太多的辦法,這也有可能是Borland不為多國語言做太多的工作的原因。 3.應用程序的數據庫必須支持Unicode內碼。應用輸入的內容都會存到數據庫中,所以數據庫要用一個支持Unicode的數據庫,否則存入的數據將無法讀回多國語言文字(或要花很多工作來完成)。目前全面支持Unicode的主流數據庫有Microsoft Access 2000, SQL Server 2000, Oracle 9x,Oracle 9x在建立數據庫中必須自定義安裝並選擇內碼為Unicode。 4.應用程序一般分為輸入界面與報表。換句話來說,應用程序必須能輸入,顯示並打印多國語言文字(同時容納繁簡英日韓等)。 應用程序的Unicode輸入法。 當然, 應用程序不必一定要用它。 但在測試時必須能在同一個窗體輸入櫃中輸入多國語言文字才能證明程序的可行性。現在能在繁簡英日韓等字體中自由轉換的輸入法只有Microsoft?微軟拼音輸入法。 分析完後, 應用程序必須做以上的准備工作,我用的是: 1. Microsoft ? Windows 2000 professional 2. Microsoft ? Access database 2000 3. 開發工具是Broand Delphi 7。 4. 界面控作我用了TNTComponent, 它是改寫了Delphi的控件來支持Unicode, TNTComponent是一個開源代碼控件, 大家可以放心使用及更改。你可以到:http://home.ccci.org/wolbrink下載並安裝 (因為它的用法與基本的控件一樣, 所以不再說明用法)。 5. 報表控件我用的是Qreport 3.6.2, 因為它不支持Unicode, 所在我改寫了它的代碼, 使到它能支持多國語言文字。 本文提供補丁代碼下載 (Http://happy.gsidc.com)。 (因為Qreport是Delphi5, 6時候Delphi自帶的控件, 本文假設讀者已會使用它來打印報表)。 6. Microsoft?微軟拼音輸入法。 可以到微軟網站免費下載。(注:如果要有日語等, 需要下載語言包)