Windows平臺下開發(fā)多語言用戶界面的探析_第1頁
Windows平臺下開發(fā)多語言用戶界面的探析_第2頁
Windows平臺下開發(fā)多語言用戶界面的探析_第3頁
Windows平臺下開發(fā)多語言用戶界面的探析_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Windows平臺下,開發(fā)多語言用戶界面的探析                        摘要:一種開發(fā)多語言用戶界面的實現(xiàn)方法,將需要使用的各種語言信息存儲起來,根據(jù)用戶所選定的語言種類,在窗體加載時,實時動態(tài)地加載所需翻譯的信息,從而實現(xiàn)了軟件界面的多語言。 關鍵詞:多語言;用戶界面;多語言信息存儲;控件遍歷。 在上個世紀六七十年代,計算機軟件開發(fā)已

2、步入規(guī)?;?,軟件工程也開始應用于軟件開發(fā)。在這些階段里,軟件開發(fā)主要集中在軟件開發(fā)大國的國內市場,如美國。當軟件公司需要將這些軟件產品推向國際市場時,如亞非拉美地區(qū),則有必要對原有的軟件進行一些修改,使得軟件支持當?shù)卣Z言,并且將軟件的界面翻譯,再投放到相應的當?shù)厥袌?。在我?0年代初,就是因為一些國外軟件進入國內市場經(jīng)常需要做類似的工作,所以出現(xiàn)了一個新名詞"漢化"。而很多人就會問為什么這些軟件就不能一開始支持這些中文、日文等語種,一定要有這個市場才進行所謂"漢化"這一步。這其中有兩個重要原因: 首先,在當時軟件開發(fā)多語言應用軟件技術不成熟,數(shù)據(jù)與模塊之

3、間的耦合度高。 如果在軟件開發(fā)階段即開始考慮多語言應用,工作量增大。而且多語言應用覆蓋到軟件開發(fā)的很多模塊,基本上只要是與用戶交互的模塊都有可能涉及。因此軟件復雜度增大、出錯機率增多,相應的產品維護工作也增加了。 其次是這些軟件產品主要針對同一語種,如英語,而其他語言的應用可能不是重點。在權衡增加這部分的投入和能得到的產出后,很多軟件產品放棄了多語言,只有一種語言版本。如果真要進入當?shù)厥袌觯荒芤笥脩羧ミm應該軟件,或者投入一定的人力去進行軟件使用培訓。特別是一些跨國公司為了保證各不同語言地區(qū)的交流,干脆只用統(tǒng)一的一種語言版本,如英語版本。 設計思路: 在程序代碼開發(fā)中,實現(xiàn)多語言的基本思路都

4、是把文字數(shù)據(jù)放在程序外部,不同的語言放在不同的文件中,當需要使用的時候在調用相應的文件取出文字數(shù)據(jù)。 對于任何一種軟件產品,在用戶面前呈現(xiàn)的信息都體現(xiàn)在用戶界面中,而這些信息就是我們在進行多語言軟件設計時要處理的對象,實現(xiàn)多語言軟件的關鍵就在于如何靈活地把這些信息轉換成對應的語言。一旦我們能在方便并有效地實現(xiàn)多語言的轉換,那么前面提到的三個問題基本上就可以忽略不計。那到底如何實現(xiàn)呢,我們從大部分軟件開發(fā)的實際過程看:用戶界面由各種控件對象所組成,而控件的用戶界面信息又是通過控件的屬性值來體現(xiàn)的,它是由軟件生產者在制作軟件時設定的。分析用戶界面的實現(xiàn)機制,我們提出多語言用戶界面的設計思路,如下圖

5、所示。 多語言用戶界面原理圖其具體思路是:首先得到呈現(xiàn)在用戶面前的窗口上的各個控件的標識和屬性,并把它的屬性值單獨存放在數(shù)據(jù)文件中。在邏輯上出現(xiàn)了兩個相關的信息載體:一是用戶界面;二是用戶界面信息數(shù)據(jù)文件,數(shù)據(jù)文件與用戶界面由控件的標識建立聯(lián)系,這樣實現(xiàn)用戶界面信息的多語言化其實就變成了如何實現(xiàn)用戶界面與用戶界面信息數(shù)據(jù)文件的映射關系。而我們可以通過一個下拉框的控件來獲取用戶打算使用的語言(這一部分功能一般出現(xiàn)在進入軟件的第一個界面),當選擇中文時,軟件產品從用戶界面信息數(shù)據(jù)文件中調用中文信息,呈現(xiàn)在用戶面前的信息全是中文;當選擇英文時,軟件產品從用戶界面信息數(shù)據(jù)文件中調用英文信息,呈現(xiàn)在用戶

6、面前的信息全是英文;選擇其它語言時就調用其它的語言信息。這樣,這些數(shù)據(jù)信息與代碼模塊之間的耦合度就很低了,一旦需要更改也很方便,只需要更改對應的數(shù)據(jù)文件,不用改變代碼,因此也就不需要重新編譯鏈接代碼。 實現(xiàn)方法: 1、語言選擇及存儲:其基本原理是把用戶選擇的語言存儲起來,在每次需要進行界面信息的語言轉換時再取出來,根據(jù)軟件再進行相應的語言翻譯工作。存儲的方式有兩種:文件和數(shù)據(jù)庫中。 存放在文件中可以選擇存放在INI配置文件中,VB對它的讀取都有通用的函數(shù),實現(xiàn)起來很方便。例如在INI文件中存放一個值"language=English",在代碼中我們就可以通過使用"

7、GetPrivateProfileString"函數(shù)讀取出"English"這個字符串,就可以知道目前是英文版本。如果用戶選擇使用中文版本,將該INI文件的"language"項設置為"Chinese"即可。如此類推,如果把這項工作放到數(shù)據(jù)庫中也一樣可以實現(xiàn)。                       &#

8、160;     2、翻譯信息的儲存和讀?。和瑯右彩怯形募蛿?shù)據(jù)庫兩種存儲方式。 著名的下載軟件"網(wǎng)絡螞蟻",該程序界面的文字數(shù)據(jù)都保存在INI文件中。根據(jù)前一個問題的實現(xiàn)方法,得出用戶選擇的語言后,再到相應的INI文件中讀取翻譯的信息。 如果把翻譯信息存放在數(shù)據(jù)庫中,其思想與放在文件中大致一樣??梢栽O計一個數(shù)據(jù)表如下。根據(jù)用戶選擇的語言到不同的字段取出翻譯的信息。 3、界面翻譯的開始:VB是一種面向過程的語言,在每個窗體開始加載前有一個事件"Form_Load",該事件可在用戶還沒有看到窗體的實際界面實

9、現(xiàn)窗體的設計。自然,也就可以改變所有控件顯示的信息了。代碼如下: For i = 0 To oFrm.Controls.Count 遍歷窗體中所有的控件 Select Case TypeName(oFrm.Controls(i) Case "Label", "Frame", "CommandButton", "CheckBox", _ "OptionButton", "Checkbox", "ToggleButton", "Menu"

10、oFrm.Controls(i).Caption = LoadCaption(oFrm.Controls(i).Caption) 更改該控件的顯示信息 Case Else End Select Next 其中主要的思想是:在Form_load事件中,遍歷該窗體所有的控件,如果該控件是用于顯示信息的,既調用翻譯函數(shù)將相應的翻譯信息反饋回來。 4、翻譯函數(shù)的實現(xiàn):其格式為:"函數(shù)名稱(需要翻譯的內容)",函數(shù)執(zhí)行完畢后返回一個字符串。其中參數(shù)"需要翻譯的內容"為英文版本的內容,如"File"。翻譯程序的流程圖如右圖,這樣調用該程序時放入一

11、個英文內容,既可以得出相應的翻譯內容。 這里需要提醒開發(fā)者的是,所有需要翻譯的控件信息在界面設計時,都應該是英文的。因為本翻譯函數(shù)是在查找翻譯信息時是以英文信息來檢索的,而前面第2步中的"翻譯信息的儲存和讀取",所有的翻譯信息是以英文信息來檢索翻譯后的內容。當然,開發(fā)者也可根據(jù)自身特點,可自行更改以上模式。但需要注意的是,翻譯函數(shù)必須要和翻譯信息的存儲對應上。 三、尚需要注意幾個地方: 1、必須允許程序代碼能夠處理好各種語言字符串。例如支持中文、韓文或日文,必須能夠處理雙字節(jié); 因此出現(xiàn)了Unicode標準,它是一種國際字符編碼標準,取代了單字節(jié)ASCII和單字節(jié)ANSI等

12、很多字符編碼標準。Unicode包含了對MicrosoftWindows、NextStep以及其他廠家使用的ASCII和ISO8859/1拉丁字符集的一對一的編碼映射。最重要的是,在軟件開發(fā)產生代碼時,Unicode字符標準為應用程序本地化提供了一個全球的解決方案,解決了許多與多字節(jié)支持有關的問題。既:應用程序只需要很小的修改或不用修改就可以支持所有的語言。 2、測試環(huán)境的建立:在多語言軟件開發(fā)中,和別的軟件開發(fā)相比,另外需要注意的是測試環(huán)境的建立。因為多語言軟件是運行在不同語言的操作系統(tǒng)上的,因此測試環(huán)境也至少是各種語言的Windows操作系統(tǒng)。筆者在以往的工作實踐中使用VMware來建立測

13、試環(huán)境,效果顯著。VMware是一種可以讓程序員在同一時刻運行多種操作系統(tǒng)的虛擬軟件。和用戶模式Linux不同,VMware允許在同一臺機器的一個工作環(huán)境中運行不同的操作系統(tǒng),只要它們是能夠在IntelX86系列上運行的。因此可以只在一臺機器上進行不同環(huán)境的測試,而且各種環(huán)境之間的切換非常方便快捷,為多語言軟件在各種操作系統(tǒng)上的測試提供良好的支持。 3、在設計程序界面時,需要讓程序界面能夠有足夠的空間顯示各種語言文字。如某一控件上的中文文字為"數(shù)據(jù)庫",英文為"Database",則控件本身的長度一定要能夠使得兩種文字完全顯示,否則軟件本身就不合格。這是一個在多語言軟件開發(fā)中最容易出現(xiàn)的錯誤。 結束語: 通過以上介紹使用VB開發(fā)多語言軟件的方法,使我們開發(fā)適應國際市場的多語言軟

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論