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