專利名稱:一種基于資源標(biāo)識(shí)符的多語(yǔ)言支持實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件多語(yǔ)言支持實(shí)現(xiàn)方法,尤其涉及一種基于資源標(biāo)識(shí)符的多語(yǔ)言支
持實(shí)現(xiàn)方法。
背景技術(shù):
軟件系統(tǒng)往往需要支持多種國(guó)別語(yǔ)言,以便適用于不同國(guó)家和地區(qū)用戶的需求。在開發(fā)軟件系統(tǒng)時(shí)把語(yǔ)言相關(guān)的內(nèi)容放進(jìn)語(yǔ)言資源庫(kù)中,在切換語(yǔ)言時(shí)更改該語(yǔ)言資源庫(kù)即可。但是由于軟件系統(tǒng)本身和語(yǔ)言資源庫(kù)之間的緊耦合,更改語(yǔ)言資源庫(kù)后需要重啟軟件系統(tǒng),這樣可能會(huì)造成業(yè)務(wù)中斷。 為了很好的解決上述問題,可以設(shè)計(jì)一種多語(yǔ)言支持實(shí)現(xiàn)方法,對(duì)軟件系統(tǒng)與國(guó)別語(yǔ)言相關(guān)的字符進(jìn)行統(tǒng)一維護(hù)管理,實(shí)現(xiàn)軟件系統(tǒng)與語(yǔ)言資源庫(kù)的松耦合,在更改語(yǔ)言資源庫(kù)時(shí)無(wú)需重啟外部軟件系統(tǒng)。經(jīng)對(duì)現(xiàn)有技術(shù)的文獻(xiàn)檢索發(fā)現(xiàn),詹東華在專利《一種多語(yǔ)言基站系統(tǒng)及其實(shí)現(xiàn)方法》(申請(qǐng)?zhí)?專利號(hào)200610001721)中介紹了一種多語(yǔ)言基站系統(tǒng)及其實(shí)現(xiàn)方法,在該方法中引入了多語(yǔ)言模塊,該模塊負(fù)責(zé)加載國(guó)別語(yǔ)言資源,基于輸入的國(guó)別語(yǔ)言無(wú)關(guān)的資源標(biāo)識(shí)符和當(dāng)前加載的國(guó)別語(yǔ)言資源可以獲得該資源標(biāo)識(shí)符對(duì)應(yīng)的字符。雖然該模塊很好的解決了上述所有問題,但仍存在以下不足 (1)多語(yǔ)言模塊加載語(yǔ)言資源時(shí)為全部加載。若外部軟件系統(tǒng)只需使用其中部分語(yǔ)言資源,會(huì)造成資源浪費(fèi); (2)外部軟件系統(tǒng)的國(guó)別語(yǔ)言由多語(yǔ)言模塊所加載的國(guó)別語(yǔ)言決定,即后臺(tái)模塊加載何種國(guó)別語(yǔ)言,則外部軟件系統(tǒng)為何種國(guó)別語(yǔ)言。 一方面,當(dāng)需要切換國(guó)別語(yǔ)言時(shí),多語(yǔ)言模塊需要重新加載語(yǔ)言資源。另一方面,因?yàn)槎嗾Z(yǔ)言模塊同時(shí)只能加載一種國(guó)別語(yǔ)言資源,外部軟件系統(tǒng)無(wú)法同時(shí)使用多種國(guó)別語(yǔ)言資源,例如無(wú)法實(shí)現(xiàn)在某個(gè)界面中顯示英文的同時(shí)在其他界面中顯示中文。
發(fā)明內(nèi)容
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷,提供一種加載效率高、存
儲(chǔ)空間少的基于資源標(biāo)識(shí)符的多語(yǔ)言支持實(shí)現(xiàn)方法。 本發(fā)明的目的可以通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn) —種基于資源標(biāo)識(shí)符的多語(yǔ)言支持實(shí)現(xiàn)方法,其特征在于,該方法包括以下步驟 1)配置語(yǔ)言資源文件;
2)設(shè)置默認(rèn)語(yǔ)言;
3)定義過(guò)濾規(guī)則; 4)根據(jù)過(guò)濾規(guī)則來(lái)加載所需的語(yǔ)言資源;
5)獲取語(yǔ)言資源; 6)實(shí)時(shí)監(jiān)測(cè)語(yǔ)言資源文件是否發(fā)生變化,若發(fā)生變化,通過(guò)讀取語(yǔ)言資源文件并重新加載語(yǔ)言資源來(lái)更新語(yǔ)言資源。 該方法硬件包括PC、語(yǔ)言資源數(shù)據(jù)庫(kù),所述的PC與語(yǔ)言資源數(shù)據(jù)庫(kù)相互連接。
所述的步驟1)中的語(yǔ)言資源文件中含有系統(tǒng)所需的語(yǔ)言資源,其中每個(gè)語(yǔ)言資源擁有一個(gè)資源標(biāo)識(shí)符,每個(gè)資源標(biāo)識(shí)符對(duì)應(yīng)多個(gè)屬性,每個(gè)屬性針對(duì)不同國(guó)別語(yǔ)言分別對(duì)應(yīng)一個(gè)屬性值,該屬性值為國(guó)別語(yǔ)言相關(guān)的字符。 所述的步驟2),若沒有提供國(guó)別時(shí),通過(guò)資源標(biāo)識(shí)符和屬性名獲得的字符為默認(rèn)國(guó)別語(yǔ)言所對(duì)應(yīng)的字符,若加載了多種國(guó)別語(yǔ)言,則可以在同一個(gè)應(yīng)用系統(tǒng)中同時(shí)顯示多個(gè)國(guó)別語(yǔ)言的字符。 所述的步驟4)中的獲取語(yǔ)言資源的方式為通過(guò)資源標(biāo)識(shí)符、國(guó)別(可選)、屬性名獲得相應(yīng)的字符。 與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn) 1、在加載語(yǔ)言資源時(shí)對(duì)語(yǔ)言資源文件中的內(nèi)容進(jìn)行過(guò)濾,只加載必要的語(yǔ)言資源,既提高了加載效率,也有效地節(jié)約了存儲(chǔ)空間; 2、本發(fā)明基于資源標(biāo)識(shí)符,一方面軟件系統(tǒng)中沒有國(guó)別語(yǔ)言相關(guān)的內(nèi)容,便于版本維護(hù),另一方面可以對(duì)語(yǔ)言資源文件進(jìn)行統(tǒng)一配置管理,凡資源標(biāo)識(shí)符定義相同的軟件系統(tǒng),均可以復(fù)用該資源文件; 3、通過(guò)實(shí)時(shí)監(jiān)測(cè)語(yǔ)言資源文件是否發(fā)生變化,可以保證所加載的語(yǔ)言為最新版本,且無(wú)需重啟軟件系統(tǒng); 4、可以同時(shí)加載多種國(guó)別語(yǔ)言資源,這樣在同一個(gè)應(yīng)用系統(tǒng)中就可以同時(shí)顯示多個(gè)國(guó)別語(yǔ)言的字符。
圖1是本發(fā)明一種基于資源標(biāo)識(shí)符的多語(yǔ)言支持實(shí)現(xiàn)方法的流程圖; 圖2是本發(fā)明一種基于資源標(biāo)識(shí)符的多語(yǔ)言支持實(shí)現(xiàn)方法的硬件結(jié)構(gòu)示意圖。
具體實(shí)施例方式
以下結(jié)合具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步說(shuō)明。
實(shí)施例 如圖1所示, 一種基于資源標(biāo)識(shí)符的多語(yǔ)言支持實(shí)現(xiàn)方法,具體步驟如下
第1步,配置語(yǔ)言資源文件。語(yǔ)言資源文件為XML格式文件,其中含有軟件系統(tǒng)所需的語(yǔ)言資源,每個(gè)語(yǔ)言資源擁有一個(gè)資源標(biāo)識(shí)符,每個(gè)資源標(biāo)識(shí)符對(duì)應(yīng)多個(gè)屬性,每個(gè)屬性針對(duì)不同國(guó)別語(yǔ)言分別對(duì)應(yīng)一個(gè)屬性值,該屬性值為國(guó)別語(yǔ)言相關(guān)的字符。語(yǔ)言資源文件的DTD格式如下 〈? xml version =〃 1.0〃 encoding = 〃 UTF-8" > 〈 ! ELEMENT MultiLanguage(ID+)> 〈 ! ATTLIST ID value CDATA#REQUIRED> 〈 ! ELEMENT ID(LANG+)> 〈 ! ELEMENT LANG(resourceString)> 〈 ! ATTLIST LANG language CDATA#REQUIRED>
〈 ! ELEMENT resourceString EMPTY>
其中MultiLanguage為XML格式的資源配置文件的根節(jié)點(diǎn); ID為資源標(biāo)識(shí)符節(jié)點(diǎn),每個(gè)資源具有唯一的資源標(biāo)識(shí)符,該節(jié)點(diǎn)中value屬性的值為資源標(biāo)識(shí)符; LANG為國(guó)別語(yǔ)言節(jié)點(diǎn),該節(jié)點(diǎn)中屬性language的值為國(guó)別語(yǔ)言;resourceString節(jié)點(diǎn)為L(zhǎng)ANG節(jié)點(diǎn)的子結(jié)點(diǎn),該節(jié)點(diǎn)中定義了 LANG所確定的國(guó)別
語(yǔ)言對(duì)應(yīng)的字符。 例如,某語(yǔ)言資源文件內(nèi)容如下 〈? xml version =〃 1.0〃 encoding = 〃 GB2312" >
〈MULTILANGUAGE〉 〈ID value =〃 000001〃 > 〈LANG language = " CN" > 〈RESOURCESTRING string = 〃測(cè)試"/> 〈/LANG> 〈LANG language = " EN" > 〈RESOURCESTRING string =〃 Test" /> 〈/LANG> 〈/ID> 〈ID value =〃 000002〃 > 〈LANG language = " CN" > 〈RESOURCESTRING string = 〃日志"level =〃報(bào)警〃 /> 〈/LANG> 〈LANG language = " EN" > 〈RESOURCESTRING string = 〃 Log" level = 〃 Alert" /> 〈/LANG> 〈/ID> 〈/MULTILANGUAGE〉 在該資源文件中,定義了兩個(gè)資源標(biāo)識(shí)符為"000001"和"000002 ",分別有兩種國(guó)別語(yǔ)言"CN"和"EN",資源標(biāo)識(shí)符"000001"所對(duì)應(yīng)的字符串有一個(gè)屬性"string",屬性"string"的"CN"國(guó)別語(yǔ)言字符為"測(cè)試","EN"國(guó)別語(yǔ)言字符為"Test"。資源標(biāo)識(shí)符"000002"所對(duì)應(yīng)的字符串有兩個(gè)屬性"string"和"level"。其"CN"國(guó)別語(yǔ)言字符為"日志"和"報(bào)警","EN"國(guó)別語(yǔ)言字符為"Log"和"Alert"。 第2步,設(shè)置默認(rèn)語(yǔ)言。在沒有提供國(guó)別時(shí)通過(guò)資源標(biāo)識(shí)符和屬性名獲得的字符為默認(rèn)國(guó)別語(yǔ)言所對(duì)應(yīng)的字符。 第3步,定義過(guò)濾規(guī)則。過(guò)濾過(guò)則決定了加載語(yǔ)言資源時(shí)應(yīng)從語(yǔ)言資源文件中應(yīng)該加載哪些語(yǔ)言資源。假設(shè)過(guò)濾規(guī)則為只加載國(guó)別為"CN"的語(yǔ)言資源。
第4步,加載語(yǔ)言資源?;?3)中的過(guò)濾過(guò)則,加載到內(nèi)存中的語(yǔ)言資源僅包含了資源標(biāo)識(shí)符"000001"和"000002"中的節(jié)點(diǎn)LANG屬性"language"為"CN"的節(jié)點(diǎn)中的資源。 第5步,獲取語(yǔ)言資源。通過(guò)資源標(biāo)識(shí)符、國(guó)別(可選)、屬性名獲得對(duì)應(yīng)國(guó)別語(yǔ)言的屬性值,若不提供國(guó)別,則獲取的為默認(rèn)語(yǔ)言的所對(duì)應(yīng)的值。假設(shè)當(dāng)前默認(rèn)語(yǔ)言為CN,通過(guò)資源標(biāo)識(shí)符000001和屬性名string獲得的字符串為"測(cè)試"。此外,若同時(shí)加載了多種國(guó)別語(yǔ)言,則可以在同一個(gè)應(yīng)用系統(tǒng)中同時(shí)顯示多個(gè)國(guó)別語(yǔ)言。 第6步,更新語(yǔ)言資源。實(shí)時(shí)監(jiān)測(cè)語(yǔ)言資源文件是否發(fā)生變化,若發(fā)生變化,則讀取語(yǔ)言資源文件,并重新加載語(yǔ)言資源。 如圖2所示,該方法硬件包括PC、語(yǔ)言資源數(shù)據(jù)庫(kù),所述的PC與語(yǔ)言資源數(shù)據(jù)庫(kù)相互連接。
權(quán)利要求
一種基于資源標(biāo)識(shí)符的多語(yǔ)言支持實(shí)現(xiàn)方法,其特征在于,該方法包括以下步驟1)配置語(yǔ)言資源文件;2)設(shè)置默認(rèn)語(yǔ)言;3)定義過(guò)濾規(guī)則;4)根據(jù)過(guò)濾規(guī)則來(lái)加載所需的語(yǔ)言資源;5)獲取語(yǔ)言資源;6)實(shí)時(shí)監(jiān)測(cè)語(yǔ)言資源文件是否發(fā)生變化,若發(fā)生變化,通過(guò)讀取語(yǔ)言資源文件并重新加載語(yǔ)言資源來(lái)更新語(yǔ)言資源。
2. 根據(jù)權(quán)利要求1所述的基于資源標(biāo)識(shí)符的多語(yǔ)言支持實(shí)現(xiàn)方法,其特征在于,該方 法硬件包括PC、語(yǔ)言資源數(shù)據(jù)庫(kù),所述的PC與語(yǔ)言資源數(shù)據(jù)庫(kù)相互連接。
3. 根據(jù)權(quán)利要求1所述的基于資源標(biāo)識(shí)符的多語(yǔ)言支持實(shí)現(xiàn)方法,其特征在于,所述 的步驟1)中的語(yǔ)言資源文件中含有系統(tǒng)所需的語(yǔ)言資源,其中每個(gè)語(yǔ)言資源擁有一個(gè)資 源標(biāo)識(shí)符,每個(gè)資源標(biāo)識(shí)符對(duì)應(yīng)多個(gè)屬性,每個(gè)屬性針對(duì)不同國(guó)別語(yǔ)言分別對(duì)應(yīng)一個(gè)屬性 值,該屬性值為國(guó)別語(yǔ)言相關(guān)的字符。
4. 根據(jù)權(quán)利要求1所述的自適應(yīng)日志文件高效輸出方法,其特征在于,所述的步驟2), 若沒有提供國(guó)別時(shí),通過(guò)資源標(biāo)識(shí)符和屬性名獲得的字符為默認(rèn)國(guó)別語(yǔ)言所對(duì)應(yīng)的字符, 若加載了多種國(guó)別語(yǔ)言,則可以在同一個(gè)應(yīng)用系統(tǒng)中同時(shí)顯示多個(gè)國(guó)別語(yǔ)言的字符。
5. 根據(jù)權(quán)利要求1所述的自適應(yīng)日志文件高效輸出方法,其特征在于,所述的步驟4) 中的獲取語(yǔ)言資源的方式為通過(guò)資源標(biāo)識(shí)符、國(guó)別(可選)、屬性名獲得相應(yīng)的字符。
全文摘要
本發(fā)明涉及一種基于資源標(biāo)識(shí)符的多語(yǔ)言支持實(shí)現(xiàn)方法,該方法包括以下步驟1)配置語(yǔ)言資源文件;2)設(shè)置默認(rèn)語(yǔ)言;3)定義過(guò)濾規(guī)則;4)根據(jù)過(guò)濾規(guī)則來(lái)加載所需的語(yǔ)言資源;5)獲取語(yǔ)言資源;6)實(shí)時(shí)監(jiān)測(cè)語(yǔ)言資源文件是否發(fā)生變化,若發(fā)生變化,通過(guò)讀取語(yǔ)言資源文件并重新加載語(yǔ)言資源來(lái)更新語(yǔ)言資源。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)加載效率高,有效地節(jié)約了存儲(chǔ)空間。
文檔編號(hào)G06F9/445GK101694617SQ20091019497
公開日2010年4月14日 申請(qǐng)日期2009年9月1日 優(yōu)先權(quán)日2009年9月1日
發(fā)明者郝黎明 申請(qǐng)人:卡斯柯信號(hào)有限公司;