軟件系統(tǒng)國際化的設(shè)計研究
(作者未知) 2011/6/23
摘要:本文基于三資企業(yè)的實際需求和軟件開發(fā)商開發(fā)成本的考慮,提出一種新的開發(fā)思路:在保證軟件系統(tǒng)業(yè)務(wù)規(guī)則和作業(yè)流程符合國際慣例的前提下,開發(fā)一種集成兩種或多種語言環(huán)境的應(yīng)用系統(tǒng),以滿足國內(nèi)、國際市場的需求;而且,中外雙方的使用者可以在同一個系統(tǒng)中任意切換,以便于雙方更好地利用軟件系統(tǒng)提升企業(yè)的管理水平。與傳統(tǒng)的軟件產(chǎn)品相比較,這種軟件產(chǎn)品具有國內(nèi)外市場空間大、軟件開發(fā)成本低、軟件性價比高等優(yōu)勢。
關(guān)鍵詞:國際化;本地化;多語種軟件系統(tǒng);數(shù)據(jù)庫
1 前言
隨著一些應(yīng)用軟件的國際化,不同國家的用戶對軟件的操作界面提出了多語種化的需求。如果軟件具有多語種支持能力,則不必為每個語種開發(fā)其相應(yīng)版本,從而降低開發(fā)成本,提高軟件的使用靈活性。
如何在一套軟件系統(tǒng)中解決語言環(huán)境不同帶來的一系列問題,就要求在軟件系統(tǒng)設(shè)計時是面向多種語言的,因此,軟件編程階段時就不得不設(shè)法解決軟件的國際化。
所謂的“國際化”是指把原來為英文設(shè)計的計算機(jī)系統(tǒng)或應(yīng)用軟件改寫為同時支持多種語言和文化習(xí)俗的過程。在軟件創(chuàng)作的初期,一般的編程語言編譯、開發(fā)都是只支持英文的,為了適應(yīng)更廣的語言和文化習(xí)俗,軟件有必要在設(shè)計結(jié)構(gòu)和機(jī)制上支持多語言的擴(kuò)展特性,這一過程稱為國際化。
一個國際化的軟件系統(tǒng)通常具有以下特征:有一個附加的本地化數(shù)據(jù)及擁有在全世界各個地區(qū)執(zhí)行的能力;文本的元素,比如狀態(tài)信息或GUI截面的標(biāo)簽,不是直接寫在程序中,而是被存儲在本地化的數(shù)據(jù)中,并且能被程序正確的動態(tài)的使用;支持新的語言時,不需要修改程序,不需要重新編譯;對于文化差異的數(shù)據(jù),比如日期和貨幣,必須根據(jù)用戶的語言和習(xí)慣顯示不同的格式;可以被迅速本地化。
2 系統(tǒng)分析
一套軟件系統(tǒng)的正常運(yùn)行,離不開軟件本身和操作系統(tǒng)的支撐,F(xiàn)在流行的操作系統(tǒng)有多種語言版本,而且,中文版操作系統(tǒng)已經(jīng)完全支持中英文的錄入和顯示,在此無須考慮操作系統(tǒng)的語言支持問題。對軟件使用者而言,軟件系統(tǒng)操作語言障礙是影響軟件使用效率的最大問題。因此,在多語種軟件系統(tǒng)設(shè)計時,必須提供多語種版本的選擇或切換功能。
目前軟件界面多語切換主要有兩種方法,即使用配置文件和第三方多語種控件。使用配置文件時,多種語種數(shù)據(jù)存放在用戶可見的文本文件中,因而容易造成數(shù)據(jù)的丟失或損壞。而使用第三方多語種控件時,如果輸入大量的多語種數(shù)據(jù),這些數(shù)據(jù)都編譯到可執(zhí)行文件中,導(dǎo)致系統(tǒng)載入速度變慢,性能降低,另外如需修改某些翻譯值,則必須重新編譯,從而給使用帶來不便。本文使用的動態(tài)數(shù)據(jù)庫載入方式配合面向?qū)ο缶幊痰睦^承思想,可以避免上述缺陷。在數(shù)據(jù)庫中可以錄入大量的多語種數(shù)據(jù),減少可執(zhí)行文件大小,系統(tǒng)啟動快;當(dāng)系統(tǒng)損壞或重做系統(tǒng)后,可以使用數(shù)據(jù)庫恢復(fù)機(jī)制,恢復(fù)系統(tǒng)數(shù)據(jù),且不影響其他數(shù)據(jù)的使用。
作者歸納出與該系統(tǒng)實現(xiàn)有關(guān)的兩個主要方面:
系統(tǒng)界面主要包括:標(biāo)題欄、菜單、工具欄、狀態(tài)欄、MDI子窗體的label標(biāo)識、按鈕標(biāo)簽、快捷鍵提示等;
人機(jī)交互信息主要包括:人機(jī)交互的提示信息、幫助信息、出錯信息等。
3 系統(tǒng)實現(xiàn)
根據(jù)以上分析結(jié)果,結(jié)合系統(tǒng)開發(fā)工具和數(shù)據(jù)庫所提供的功能,筆者提出實現(xiàn)多語種軟件系統(tǒng)的一種通用方法:將系統(tǒng)界面信息和交互信息歸類合并,動態(tài)地從數(shù)據(jù)庫表中提取系統(tǒng)界面和人機(jī)交互信息所需的顯示內(nèi)容,并通過改變系統(tǒng)全局變量來提供中英文實時切換功能。
傳統(tǒng)的軟件開發(fā)方法都是把界面中的各種欄位標(biāo)識在程序設(shè)計階段設(shè)定好,這種方法在單一的語言環(huán)境下可行,但在多語種集成環(huán)境下,界面的語言顯示方式由用戶選擇,因此,必須選擇彈性的開發(fā)方法。
換一種思路,直接從數(shù)據(jù)庫表中提取系統(tǒng)各個欄位的中(英)文標(biāo)識,而且,針對每一個所要顯示的內(nèi)容,在相關(guān)表中建立兩個字段分別代表該標(biāo)識的兩種語言顯示內(nèi)容,通過系統(tǒng)全局變量(boolean類型)來控制兩種語言使用環(huán)境。
然而,在系統(tǒng)設(shè)計和軟件實現(xiàn)中,所要考慮的因素較多。如果對每個數(shù)據(jù)庫表及其字段都設(shè)置中英文兩個方式,再通過程序調(diào)用,這種方法可行,但浪費(fèi)數(shù)據(jù)庫資源,并且在程序?qū)崿F(xiàn)時較繁瑣。
經(jīng)過對多語言軟件系統(tǒng)功能和實現(xiàn)方法的仔細(xì)分析和反復(fù)實驗,并考慮該實現(xiàn)方法的模塊化和通用性,提出了一種簡單易行而又高效的實現(xiàn)方法,即:新建與中英文語言版本轉(zhuǎn)換相關(guān)的三個數(shù)據(jù)庫表單,采用組件方法開發(fā)了對應(yīng)的三個類。
說明如下:
FormName表:該表單與系統(tǒng)主菜單有關(guān),包含所有數(shù)據(jù)庫表單的中英文名稱,提供MDI主窗體的菜單顯示內(nèi)容;
FieldName表:該表單包括全部數(shù)(未完,下一頁)
|