專利名稱:一種Web應(yīng)用中的多語言綁定方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Web門戶站點技術(shù),特別涉及一種Web應(yīng)用中的多語言綁定 方法及系統(tǒng)。
技術(shù)背景隨著網(wǎng)絡(luò)應(yīng)用的深入和電子商務(wù)的廣泛應(yīng)用,門戶站點市場成為增長速度 最快的計算機(jī)軟件市場之一,隨之對門戶站點語言應(yīng)用的要求也越來越高,應(yīng) 用范圍也越來越廣泛?,F(xiàn)在多語言4支術(shù)在Web應(yīng)用中已經(jīng)相當(dāng)成熟和廣泛, 基本上所有的Web應(yīng)用框架都提供了多語言的解決方案。圖1所示為現(xiàn)有技術(shù)中Web界面多語言方案的操作流程,如圖1所示, 多語言實現(xiàn)的通用方式如下SI:為每種語言定義單獨的資源文件,資源文件以語言名稱簡寫作為后綴, 例如en、 zh分別表示英文與中文。在每種語言的資源文件中,定義一系列的鍵值對,例如在 messages—en.properties文件中定義name=Name,在messages—zh.properties文件 中定義name二姓名。S2:為程序界面指定需要裝載的多語言資源文件名稱;S3:為界面指定多語言對應(yīng)的key值。需要顯示多語言的界面元素中,使 用在多語言資源文件中的key值作為標(biāo)識,而不直接使用最終的字符串,例如 〈label id=,,name" value="#{msgs.name}"/〉;S4:界面渲染;S5 S7:在程序運(yùn)行過程中,首先根據(jù)當(dāng)前語言,以及多語言資源文件名 稱,找到對應(yīng)的資源文件裝載,然后根據(jù)界面元素中所制定的key值,在資源 文件中找到匹配的鍵值對,取出實際的值賦給界面元素。S8:根據(jù)賦值后的界面元素以及界面渲染結(jié)果將界面展示出來,顯示出來 的將是定義在資源文件中的實際的值,這樣可以達(dá)到多語言的效果。在現(xiàn)有的多語言解決方案中,程序員需要定義多語言資源文件、為界面指 定多語言資源文件名稱以及為界面元素指定多語言的key值;由于在現(xiàn)有的
Web應(yīng)用中,需要展示多語言的界面和界面元素數(shù)量龐大,因此,開發(fā)人員要面對大量的多語言數(shù)據(jù)做重復(fù)勞動,所需做的工作不但耗時,而且容易出錯。 發(fā)明內(nèi)容為了解決現(xiàn)有多語言解決方案中的重復(fù)勞動問題,提升開發(fā)效率,本發(fā)明提供一種Web應(yīng)用中的多語言綁定方法,包括如下步驟 Sl:定義多語言資源文件;S2:開始界面渲染,解析界面地址,進(jìn)入步驟S3; S3:才艮據(jù)當(dāng)前語言以及界面的地址找到對應(yīng)的多語言資源文件; S4:才艮據(jù)界面元素的id,在多語言資源文件中找到對應(yīng)的實際值; S5:將實際值賦給界面元素;S6:根據(jù)賦值后的界面元素及界面渲染結(jié)果展示所選擇語言的界面。 其中,在定義多語言資源文件過程中,用已經(jīng)存在的界面元素id作為多語言的key。在多語言資源文件定義完成后,以界面地址作為文件名稱保存該多語言資源文件。另一方面,本發(fā)明還提供一種Web應(yīng)用中的多語言綁定系統(tǒng),其特征在 于該系統(tǒng)包括多語言資源文件定義單元,用于在Web應(yīng)用軟件開發(fā)過程中定義多語言 資源文件;界面渲染單元,用于解析Web界面并調(diào)用界面上的組件; 資源文件定位單元,用于根據(jù)當(dāng)前語言以及界面的地址找到對應(yīng)的多語言 資源文件;實際值定位單元,用于根據(jù)界面元素的id,在多語言資源文件中找到對應(yīng) 的實際值;界面元素賦值單元,用于將實際值賦給界面元素;界面展示單元,用于根據(jù)賦值后的界面元素展示所選擇語言的界面。其中,多語言資源文件定義單元包括key指定單元,用于將已經(jīng)存在的界面元素id作為多語言資源文件的key。 地址匹配單元,用于在多語言資源文件定義完成后以界面地址作為文件名 稱保存該多語言資源文件。
本發(fā)明利用在開發(fā)過程中已經(jīng)定義了的界面元素id,來關(guān)聯(lián)多語言資源文 件中的key值的方式,使Web應(yīng)用在開發(fā)過程中可以自動的對界面上的多語 言信息進(jìn)行綁定,在用戶切換語言時,自動根據(jù)所選的語言顯示對應(yīng)的內(nèi)容, 從而節(jié)省開發(fā)人員工作,并達(dá)到自動實現(xiàn)多語言綁定的目的。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點1. 開發(fā)人員可以不必為界面指定對應(yīng)的資源文件名稱;2. 開發(fā)人員可以不必在界面中,為每個界面元素定義多語言的key;3. 節(jié)省了大量的重復(fù)勞動,提升開發(fā)效率,減少錯誤率。
圖l是現(xiàn)有技術(shù)中Web界面多語言方案流程示意圖;圖2是本發(fā)明實施例的Web界面多語言方案流程示意圖;圖3表示普通的Web應(yīng)用的界面示意圖;圖4表示普通的多語言資源文件被放置路徑的示意圖;圖5表示普通的多語言資源文件內(nèi)容的示意圖;圖6表示普通的界面文件示意圖;圖7表示本發(fā)明實施例的多語言資源文件被放置路徑的示意圖; 圖8表示本發(fā)明實施例的多語言資源文件內(nèi)容的示意圖; 圖9表示本發(fā)明實施例的界面文件示意圖。
具體實施方式
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
對本發(fā)明作進(jìn)一步詳細(xì)的說明。本發(fā)明提供一種Web界面多語言方案,據(jù)具體表現(xiàn)為一種自動對界面多 語言進(jìn)行綁定的系統(tǒng),包括多語言資源文件定義單元、界面渲染單元、資源文 件定位單元、實際值定位單元、界面元素賦值單元和界面展示單元。多語言資源文件定義單元用于在Web應(yīng)用軟件開發(fā)過程中定義多語言資 源文件,其中包括key指定單元和地址匹配單元,其中key指定單元用于將已 經(jīng)存在的界面元素id作為多語言資源文件的key,地址匹配單元用于在多語言 資源文件定義完成后以界面地址作為文件名稱保存該多語言資源文件。在資源文件定位單元、實際值定位單元中,分別根據(jù)當(dāng)前語言以及界面的
地址找到對應(yīng)的多語言資源文件,然后根據(jù)界面元素的id在多語言資源文件 中找到對應(yīng)的實際值。界面元素賦值單元將實際值定位單元中找到的實際值賦值給界面元素,然 后由界面展示單元展示界面。本發(fā)明并未從根本上改變多語言綁定的運(yùn)作機(jī)制,而是通過界面地址與資源文件名稱作為關(guān)聯(lián)來獲取資源文件;通過id與多語言資源文件key的對應(yīng) 方式,自動綁定多語言;由此來節(jié)省開發(fā)人員為界面元素指定多語言資源文件 名稱和為界面元素指定多語言對應(yīng)的key值的工作。下面以一個具體的多語言應(yīng)用場景為例對本發(fā)明的Web界面多語言方案 進(jìn)行說明。圖3展示了一個普通的Web應(yīng)用的界面,界面上包含三個功能按鈕。當(dāng) 使用中文的操作系統(tǒng)訪問這個網(wǎng)頁的時候,按鈕上應(yīng)該顯示的文字為"按鈕 1"、"按鈕2"、"按鈕3"(圖3a);當(dāng)使用英文的操作系統(tǒng)訪問這個網(wǎng)頁的時 候,按鈕上應(yīng)該顯示的文字為"Buttonl"、 "Button2"、 "Button3"(圖3b)。對此多語言應(yīng)用的標(biāo)準(zhǔn)需求來說,目前業(yè)界的常規(guī)解決方案如下(1) 定義多語言的資源文件多語言的資源文件一般以Key=Value形式定義在擴(kuò)展名為properties的文 件之中,并且,資源文件需要被放置在如圖4所示的應(yīng)用的類路徑中。在圖4 的示例中,定義了三個多語言資源文件,分別是如圖5所示的默認(rèn)(圖5a)、 英文(圖5b)、中文(圖5b)三個,位于應(yīng)用的類路徑下的resources目錄中。(2) 為界面元素指定資源文件的key定義好了多語言資源后,需要繪制如圖3所示的界面部分,界面最終表現(xiàn) 的形式也是一個文件, 一般以jsp或xhtml為擴(kuò)展名,頁面包含了一個裝載多 語言資源的組件和三個按鈕組件,圖4所示示例所用的界面文件表現(xiàn)如6所示。上述(l)、 (2)屬于開發(fā)期的步驟,執(zhí)行主體為Web應(yīng)用開發(fā)者;運(yùn)行期的 執(zhí)行主體為Web應(yīng)用服務(wù)器以及各個服務(wù)器端組件,步驟如下(3) 客戶端發(fā)起調(diào)用客戶端在瀏覽器中輸入請求地址,請求demo這個頁面,例如 http:〃localhost/webapp/pages/demo.xhtml (4) 服務(wù)器端收到訪問請求瀏覽器發(fā)送請求時,通常會將本地系統(tǒng)的語言,放入到請求頭中發(fā)送給服 務(wù)器端。服務(wù)器端收到訪問請求,將請求中的"本地系統(tǒng)的語言"視之為"當(dāng) 前語言"。(5) 界面渲染界面渲染就是服務(wù)器端對界面進(jìn)行界面解析、調(diào)用界面上的各個組件等的 行為。服務(wù)器端根據(jù)請求的地址(在本實例中為"pages/demo.xhtml")開始界 面渲染,首先找到對應(yīng)位置的demo.xhtml并解析,發(fā)現(xiàn)其中含有4個組件(即 前述"一個裝載多語言資源的組件和三個按鈕組件"),然后服務(wù)器端對這4 個組件依次進(jìn)4亍調(diào)用。(6) 從多語言資源組件中,找到對應(yīng)的多語言資源文件,然后從多語言資 源文件中找到實際值該步驟的執(zhí)行主體為多語言裝載組件。當(dāng)"多語言裝載組件"(圖6中的 loadResource)被服務(wù)器調(diào)用時,根據(jù)多語言資源文件的位置參數(shù)(見圖6中 的"basename=resource.Messages")以及當(dāng)前的i吾言(如果沒有貝'J為,默i人)在 應(yīng)用的類路徑中找到對應(yīng)的資源文件,例如如果當(dāng)前語言為英文,則找到 "Messages—en—US.properties ,, 文件,如果當(dāng)前語言為中文,則找到 "Messages—zh_CN.properties"文件,如果沒有獲取到"當(dāng)前語言",則默認(rèn)裝 載"Messages-properties"文件。當(dāng)資源文件被唯一確定了之后,"多語言裝載組件"將這個資源文件進(jìn)行 解析并按照指定的名稱(見圖6中的"var=msgs")創(chuàng)建一個鍵值對類型的容 器變量,該容器具備根據(jù)指定的key獲取對應(yīng)值的能力。(7) 賦值該步驟的執(zhí)行主體為按鈕組件。當(dāng)執(zhí)行到按鈕組件時,由于頁面為其value 屬性指定了值(值為^msgs.labe11)),按鈕取出了這個值并經(jīng)過計算后,賦給 自身的value屬性。"#{msgs.labell},,這句話的意思是說"從名稱為msgs的 變量中取出key為labell的值"。由于msgs變量已經(jīng)在第(6)步中凈皮定義,經(jīng)過 第(6)步的處理,目前的msgs變量中已經(jīng)具備了 3個元素,因此能夠取得key 等于labell對應(yīng)的值為Buttonl或者"按鈕1"。
(8)展示界面最后,服務(wù)器端根據(jù)賦值后的界面元素以及界面渲染結(jié)果,將最后的結(jié)果 展示給客戶端瀏覽器。針對上述傳統(tǒng)的多語言機(jī)制,本發(fā)明在定義多語言資源文件環(huán)節(jié)對其作出 改進(jìn),從而能夠以以下更為簡便的步驟實現(xiàn)上述的例子,在節(jié)約開發(fā)資源的同 時獲得同樣的開發(fā)效果。圖2是本發(fā)明中Web界面多語言方案流程示意圖。如圖2所示,本發(fā)明 提供的Web應(yīng)用中多語言的自動綁定方法包括如下步驟 Sl:定義多語言資源文件;如圖7所示,本示例中將多語言名字定義為demo并放置在pages的目錄 下,是為了與請求的頁面映射,當(dāng)客戶端請求demo.xhtml頁面時,需要在瀏 覽器地址欄內(nèi)輸入http:〃localhost/webapp/pages/demo.xhtml,此時,月良務(wù)器端 就能夠知道客戶端試圖訪問的是demo.xhtml頁面,而多語言資源與頁面位置 定義為 一致之后,在發(fā)生請求時則可按照一樣的原理找到頁面所需的多語言資 源文件。多語言資源文件的內(nèi)容如圖8所示,在多語言資源文件中,key值是特殊 的,其意義表示為"元素id.元素屬性名",例如圖8中所示的btnl.value、 btn2.value、 btn3.value,這樣在運(yùn)行期的時候,就可以通過解析key的值,來 實現(xiàn)為元素賦值的目的了。根據(jù)上述不同與傳統(tǒng)方式的多語言資源文件的內(nèi)容,可以看到圖9表示的 界面文件中也沒有加入如圖6所示的傳統(tǒng)方式中的多語言的組件,也沒有指定 多語言資源文件的位置,以及按鈕應(yīng)該顯示什么文字。大部分情況下,界面元素的id是需要指定的,但在本發(fā)明中,如步驟Sll 所示,在定義多語言資源文件的過程中,使用已經(jīng)存在的界面元素id作為多 語言的key (如圖8所示),可以省略現(xiàn)有技術(shù)中"為界面元素指定多語言的 key"(如圖6所示)的步驟,從而達(dá)到開發(fā)人員無需為界面元素定義多語言 key值即可實現(xiàn)界面多語言的目的。此外,在Web應(yīng)用開發(fā)過程中,界面元素 一旦確定,則其地址也相應(yīng)的確定,如orderList表示訂單列表的界面,本發(fā) 明通過命名約定的方式,在多語言資源文件定義完成后,以界面地址作為文件 名稱保存(步驟S12),可以省略現(xiàn)有技術(shù)中在執(zhí)行期的時候"為界面指定多語言資源文件名稱,,(如圖6所示)的步驟。因此就得到了如圖9所示的比傳統(tǒng)方式下更為簡單的界面文件。S2:界面渲染;界面渲染行為是一種服務(wù)器框架的行為,屬于現(xiàn)有技術(shù)中的一種框架技 術(shù),在此不再贅述。用戶打開一個Web界面時,開始界面渲染;界面渲染開 始后,服務(wù)器端會進(jìn)行界面解析、調(diào)用界面上的各個組件等行為。在現(xiàn)有技術(shù) 中,需要界面渲染至界面上的多語言資源組件時,才會進(jìn)入找尋對應(yīng)多語言資 源文件的步驟;而在本發(fā)明中,由于以界面地址作為多語言資源文件文件名稱 保存,因此在解析請求的界面地址時,就能夠進(jìn)入找尋對應(yīng)多語言資源文件的 步驟(S3 )。S3:根據(jù)當(dāng)前語言以及界面的地址找到對應(yīng)的資源文件; 例^口, i青求的界面i也ii為http:〃localhost/webapp/pages/demo.xhtml當(dāng)前 語言為"筒體中文,,(當(dāng)前語言對應(yīng)碼為zh—CN),則可以找到對應(yīng)的資源文件 為應(yīng)用的類鴻4圣目錄下的pages子目錄下面的demo—zh—CN.properties文4牛。其中,"當(dāng)前語言,,是找到多語言資源文件的一個必要條件。"多語言資源 文件名稱"+ "當(dāng)前語言"可以找到唯一的一個物理文件。例如每種語言都 對應(yīng)著一個物理文件,如中文對應(yīng)Messages—zh—CN.properties、英文對應(yīng) Messages—en—US .properties 。多i爭言資源文4牛名稱為"Messages",當(dāng)前i吾言為 "zh—CN"那么才能決定當(dāng)前的資源文件為"Messages—zh—CN.properties" S4-.根據(jù)界面元素的id,在資源文件中找到對應(yīng)的實際值; 例如,界面元素的id為btnl,則在資源文件中找到了 btnl.value4要4丑1, 實際值為"按鈕l"。S5:將實際值賦給界面元素;在S4步中找到了 btnl.value—要鈕1,意味著需要把"按鈕1"這個實際值 賦值給btnl這個組件的value屬性。 S6:展示界面;根據(jù)賦值后的界面元素以及界面渲染結(jié)果,最終向用戶展示所選擇語言的 界面。由上述示例的對比可以看出,本發(fā)明4是供的Web界面多語言方案無需在 每個頁面中定義多語言加載組件;也無需為每個用到多語言的地方都去顯式的 進(jìn)行裝載多語言資源的行為;并且能夠自動根據(jù)以下規(guī)則進(jìn)行多語言的綁定 多語言資源文件的位置映射規(guī)則,根據(jù)當(dāng)前請求頁面的地址進(jìn)行映射; *多語言資源文件的key是特殊的key,映射為需要作用在頁面元素上的EX從而在用戶切換語言時,能夠借助上述綁定自動根據(jù)所選的語言顯示對應(yīng) 的內(nèi)容,達(dá)到自動實現(xiàn)多語言綁定的目的。據(jù)此有效解決了開發(fā)人員在Web 應(yīng)用開發(fā)過程中的重復(fù)勞動問題,大大減輕的工作量,提升開發(fā)效率。以上對本發(fā)明所提供的一種自動對界面多語言進(jìn)行綁定的方法和系統(tǒng)進(jìn)述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時, 對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍 上均會有改變之處。綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制,凡 在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本 發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1、一種Web應(yīng)用中的多語言綁定方法,其特征在于,包括如下步驟S1定義多語言資源文件;S2開始界面渲染,解析界面地址,進(jìn)入步驟S3;S3根據(jù)當(dāng)前語言以及界面的地址找到對應(yīng)的多語言資源文件;S4根據(jù)界面元素的id,在多語言資源文件中找到對應(yīng)的實際值;S5將實際值賦給界面元素;S6根據(jù)賦值后的界面元素及界面渲染結(jié)果展示所選擇語言的界面。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,在定義多語言資源文件過 程中,用已經(jīng)存在的界面元素id作為多語言的key。
3、 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,在多語言資源文件定 義完成后,以界面地址作為文件名稱保存該多語言資源文件。
4、 一種Web應(yīng)用中的多語言綁定系統(tǒng),其特4正在于該系統(tǒng)包括 多語言資源文件定義單元,用于在Web應(yīng)用軟件開發(fā)過程中定義多語言資源文件;界面渲染單元,用于解析Web界面并調(diào)用界面上的組件; 資源文件定位單元,用于根據(jù)當(dāng)前語言以及界面的地址找到對應(yīng)的多語言 資源文件;實際值定位單元,用于根據(jù)界面元素的id,在多語言資源文件中找到對應(yīng) 的實際值;界面元素賦值單元,用于將實際值賦給界面元素;界面展示單元,用于根據(jù)賦值后的界面元素展示所選擇語言的界面。
5、 根據(jù)權(quán)利要求4所述的Web應(yīng)用中的多語言綁定系統(tǒng),其特征在于所 述多語言資源文件定義單元包括key指定單元,用于將已經(jīng)存在的界面元素id作為多語言資源文件的key。
6、 根據(jù)權(quán)利要求4或5所述的Web應(yīng)用中的多語言綁定系統(tǒng),其特征在 于所述多語言資源文件定義單元包括地址匹配單元,用于在多語言資源文件定義完成后以界面地址作為文件名 稱保存該多語言資源文件。
全文摘要
本發(fā)明提供了一種Web應(yīng)用中的多語言綁定方法,包括如下步驟S1定義多語言資源文件;S2開始界面渲染,解析界面地址,進(jìn)入步驟S3;S3根據(jù)當(dāng)前語言以及界面的地址找到對應(yīng)的多語言資源文件;S4根據(jù)界面元素的id,在多語言資源文件中找到對應(yīng)的實際值;S5將實際值賦給界面元素;S6根據(jù)賦值后的界面元素及界面渲染結(jié)果展示所選擇語言的界面。本發(fā)明利用在開發(fā)過程中已經(jīng)定義了的界面元素id,來關(guān)聯(lián)多語言資源文件中的key值的方式,使Web應(yīng)用在開發(fā)過程中可以自動的對界面上的多語言信息進(jìn)行綁定,在用戶切換語言時,自動根據(jù)所選的語言顯示對應(yīng)的內(nèi)容,從而節(jié)省開發(fā)人員大量的重復(fù)勞動,提升開發(fā)效率。
文檔編號G06F17/30GK101398845SQ20081017451
公開日2009年4月1日 申請日期2008年11月5日 優(yōu)先權(quán)日2008年11月5日
發(fā)明者旭 張 申請人:深圳市金蝶中間件有限公司