專利名稱:支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法、網(wǎng)頁(yè)加載方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用領(lǐng)域,特別涉及ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)實(shí)現(xiàn)技木。
背景技術(shù):
國(guó)際化的必要條件是設(shè)計(jì)和開(kāi)發(fā)容易適應(yīng)不同區(qū)域要求產(chǎn)品。對(duì)于可通過(guò)網(wǎng)絡(luò)訪問(wèn)的產(chǎn)品,它要求萬(wàn)維網(wǎng)(World Wide Web,簡(jiǎn)稱“WWW”)頁(yè)面可以方便地實(shí)現(xiàn)多國(guó)語(yǔ)言的切換顯示。這種方便包括兩個(gè)方面I. Web頁(yè)面多國(guó)語(yǔ)言的添加維護(hù);2.用戶使用Web頁(yè)面的交互體驗(yàn)。前者要求Web頁(yè)面支持多國(guó)語(yǔ)言的方法需要盡量減少添加新語(yǔ)言和維護(hù)現(xiàn)有語(yǔ)言時(shí)的工作量,后者要求該方法具有較高的響應(yīng)速度。
為了實(shí)現(xiàn)Web頁(yè)面支持多國(guó)語(yǔ)言,現(xiàn)有技術(shù)通常采用以下三種方案之一I.每ー個(gè)Web頁(yè)面針對(duì)每一國(guó)語(yǔ)言編寫(xiě)ー個(gè)HTM L文件,在切換語(yǔ)言時(shí)重新載入對(duì)應(yīng)國(guó)語(yǔ)言的文本標(biāo)記語(yǔ)言(Hyper Text Makeup Language,簡(jiǎn)稱“HTML”)文件;2.每ー個(gè)Web頁(yè)面對(duì)應(yīng)ー個(gè)HTML文件和一個(gè)翻譯文件,翻譯文件通常但不限于為可擴(kuò)充標(biāo)記語(yǔ)言(extensible Markup Language,簡(jiǎn)稱“XML”)文件(以下均使用XML文件作為翻譯文件,以示說(shuō)明),XML文件中針對(duì)每一國(guó)語(yǔ)言建立一個(gè)節(jié)點(diǎn)集合,將HTML文件中或通過(guò)Web腳本代碼動(dòng)態(tài)插入的與各國(guó)語(yǔ)言有差異的字符串(以下簡(jiǎn)稱“語(yǔ)言字符串”)抽離,并通過(guò)索引與XML文件中各國(guó)語(yǔ)言節(jié)點(diǎn)集合的字符串關(guān)聯(lián),在加載Web頁(yè)面或切換語(yǔ)言時(shí)從XML文件對(duì)應(yīng)國(guó)語(yǔ)言節(jié)點(diǎn)集合中通過(guò)索引替換HTML文件中的字符串;3.每ー個(gè)Web頁(yè)面對(duì)應(yīng)ー個(gè)HTML文件,針對(duì)每一國(guó)語(yǔ)言編寫(xiě)ー個(gè)XML文件,將HTML文件中語(yǔ)言字符串抽離并通過(guò)索引與各XML文件中的字符串關(guān)聯(lián),在加載Web頁(yè)面或切換語(yǔ)言時(shí)從對(duì)應(yīng)國(guó)語(yǔ)言的XML文件中通過(guò)索引替換HTML文件中的字符串。對(duì)于Web頁(yè)面支持多國(guó)語(yǔ)言的可維護(hù)性上述方案2優(yōu)于方案1,方案3又優(yōu)于方案2。對(duì)于用戶切換Web頁(yè)面語(yǔ)言時(shí)的響應(yīng)速度上述方案2和方案3均優(yōu)于方案I。而方案2和方案3的比較則要視具體情況而定對(duì)于遍歷算法的時(shí)間復(fù)雜度二者相同,都是當(dāng)前Web頁(yè)面語(yǔ)言字符串個(gè)數(shù)(η)的平方(次),對(duì)于Web前端(瀏覽器)與Web后端(服務(wù)器)的交互速度方案2在加載ー個(gè)Web頁(yè)面時(shí)只需獲取ー個(gè)HTML文件和ー個(gè)XML文件(或稱為XMLII ),切換語(yǔ)言時(shí)無(wú)需獲?。环桨?在加載ー個(gè)Web頁(yè)面時(shí)需獲取ー個(gè)HTML文件和ー個(gè)XML (或稱為XMLIII)文件,每次切換語(yǔ)言時(shí)需獲取另ー個(gè)對(duì)應(yīng)國(guó)語(yǔ)言的XML文件(或稱為XMLIir )。當(dāng)支持語(yǔ)言種類(L)較少時(shí)(L< 2),XMLII與XMLIII的文件長(zhǎng)度相近,影響用戶體驗(yàn)的主要因素是Web前后端的交互次數(shù),因此方案2優(yōu)于方案3。當(dāng)支持語(yǔ)言種類較多時(shí)(L > 2),XMLII是XMLIII文件長(zhǎng)度的L倍,影響用戶體驗(yàn)的主要因素變?yōu)閃eb前后端的交互時(shí)間,方案3可將每次加載ー個(gè)新Web頁(yè)面時(shí)的交互時(shí)間平分到毎次切換語(yǔ)言吋,而用戶重新切換語(yǔ)言的頻率要比用戶加載ー個(gè)新Web頁(yè)面的頻率低得多,因此方案3優(yōu)于方案2。隨著產(chǎn)品的國(guó)際化,要求Web頁(yè)面支持的語(yǔ)言種類越來(lái)越多,所以目前Web頁(yè)面支持多國(guó)語(yǔ)言的實(shí)現(xiàn)方法多采用方案3。但方案2和方案3均普遍存在以下缺點(diǎn)I.雖然Web頁(yè)面中的語(yǔ)言字符串采用軟編碼的設(shè)計(jì)方式(即語(yǔ)言字符串與HTML文件分離),但產(chǎn)品所支持的語(yǔ)言種類則是硬編碼的方式存在于Web腳本代碼,因此每次提供支持不同國(guó)語(yǔ)言種類集合的產(chǎn)品時(shí),需要修改源代碼;2.目前已知的3種方案均是以HTML文件中包含語(yǔ)言字符串的標(biāo)簽(以下簡(jiǎn)稱“語(yǔ)言標(biāo)簽”)的id屬性作為與XML文件間的索引鍵,而萬(wàn)維網(wǎng)聯(lián)盟標(biāo)準(zhǔn)要求ー個(gè)HTML文件中所有標(biāo)簽的id屬性不可重復(fù),導(dǎo)致在ー個(gè)HTML文件中顯示在不同位置的同一個(gè)語(yǔ)言字符串所在的標(biāo)簽必須賦以不同的位置屬性,同時(shí)在對(duì)應(yīng)的XML文件中重復(fù)多次;3.當(dāng)多個(gè)HTML文件具有相同的語(yǔ)言字符串時(shí),要在對(duì)應(yīng)的多個(gè)XML文件中各保留ー份;4.對(duì)于某些語(yǔ)言字符串個(gè)數(shù)較少同時(shí)關(guān)系較密切(可能會(huì)被用戶頻繁地相互間來(lái)回切換)的Web頁(yè)面,每次加載ー個(gè)新HTML文件的同時(shí)還必須加載ー個(gè)XML文件,勢(shì)必增大 Web前后端交互的壓カ;5.當(dāng)用戶選擇切換語(yǔ)言時(shí),無(wú)法替換以Web腳本代碼方式動(dòng)態(tài)插入到Web頁(yè)面中的語(yǔ)言字符串(以下簡(jiǎn)稱“動(dòng)態(tài)語(yǔ)言字符串”,指并非通過(guò)HTML文件中的語(yǔ)言標(biāo)簽與XML文件節(jié)點(diǎn)相關(guān)聯(lián)的語(yǔ)言字符串),或者只能在切換語(yǔ)言的同時(shí)刷新Web頁(yè)面。綜上,缺點(diǎn)1、2、3増大了添加新語(yǔ)言和維護(hù)現(xiàn)有語(yǔ)言時(shí)的工作量,増加了語(yǔ)言字符串間的冗余;缺點(diǎn)4、5則降低了用戶切換Web頁(yè)面或切換語(yǔ)言時(shí)的響應(yīng)速度。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法、網(wǎng)頁(yè)加載方法及其系統(tǒng),當(dāng)添加或修改某一國(guó)語(yǔ)言時(shí),減少人工投入的時(shí)間和成本,節(jié)省網(wǎng)頁(yè)服務(wù)器的存儲(chǔ)容量,提高頁(yè)面加載和翻譯渲染的速度,以及降低翻譯文件集的冗余度。為解決上述技術(shù)問(wèn)題,本發(fā)明的實(shí)施方式公開(kāi)了ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法,基于ー個(gè)樹(shù)狀結(jié)構(gòu)的翻譯文件集,其中,每個(gè)超文本標(biāo)記語(yǔ)言HTM L文件有對(duì)應(yīng)的翻譯文件,包括以下步驟掃描翻譯文件集中所有的翻譯文件;將不同翻譯文件或同一翻譯文件不同節(jié)點(diǎn)集合中的相同的語(yǔ)言字符串提取出來(lái),并插入到該不同翻譯文件的最小公共祖先翻譯文件或該同一翻譯文件的公共節(jié)點(diǎn)集合;將原始翻譯文件或節(jié)點(diǎn)集合中的相同語(yǔ)言字符串刪除。本發(fā)明的實(shí)施方式還公開(kāi)了ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載方法,基于ー個(gè)樹(shù)狀結(jié)構(gòu)的翻譯文件集,其中,每個(gè)超文本標(biāo)記語(yǔ)言HTML文件有對(duì)應(yīng)的翻譯文件,其特征在于,包括以下步驟從服務(wù)器中下載當(dāng)前HTML文件對(duì)應(yīng)的翻譯文件及該翻譯文件對(duì)應(yīng)的所有祖先翻譯文件;將所述翻譯文件的語(yǔ)言字符串與其所有祖先翻譯文件公共的語(yǔ)言字符串合井;將合并的語(yǔ)言字符串插入或替換HTML文件的語(yǔ)言標(biāo)簽內(nèi)容,進(jìn)行多語(yǔ)言的顯示或切換。本發(fā)明的實(shí)施方式還公開(kāi)了ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理系統(tǒng),基于ー個(gè)樹(shù)狀結(jié)構(gòu)的翻譯文件集,其中,每個(gè)超文本標(biāo)記語(yǔ)言HTML文件有對(duì)應(yīng)的翻譯文件,包括以下模塊
掃描模塊,用于掃描翻譯文件集中所有的翻譯文件;提取模塊,用于將掃描模塊所掃描的不同翻譯文件或同一翻譯文件不同節(jié)點(diǎn)集合中的相同的語(yǔ)言字符串提取出來(lái);插入模塊,用于將提取模塊所提取的相同的語(yǔ)言字符串插入到該不同翻譯文件的最小公共祖先翻譯文件或該同一翻譯文件的公共節(jié)點(diǎn)集合;刪除模塊,用于將原始翻譯文件或節(jié) 點(diǎn)集合中且上述提取模塊所提取的相同語(yǔ)言字符串刪除。本發(fā)明的實(shí)施方式還公開(kāi)了ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載系統(tǒng),基于ー個(gè)樹(shù)狀結(jié)構(gòu)的翻譯文件集,其中,每個(gè)超文本標(biāo)記語(yǔ)言HTML文件有對(duì)應(yīng)的翻譯文件,包括以下模塊下載模塊,用于從服務(wù)器中下載當(dāng)前HTML文件對(duì)應(yīng)的XML文件及該XML文件對(duì)應(yīng)的所有祖先XML文件;合并模塊,用于將下載模塊所下載的XML文件的語(yǔ)言字符串與其所有祖先XML文件公共的語(yǔ)言字符串合并;翻譯渲染模塊,用于將合并模塊所合并的語(yǔ)言字符串插入或替換HTML文件的語(yǔ)言標(biāo)簽內(nèi)容,進(jìn)行多語(yǔ)言的顯示或切換。本發(fā)明實(shí)施方式與現(xiàn)有技術(shù)相比,主要區(qū)別及其效果在于通過(guò)合并不同的翻譯文件或同一翻譯文件不同節(jié)點(diǎn)集合中相同的字符串到最小公共祖先翻譯文件或同一翻譯文件的公共節(jié)點(diǎn)集合,再將原始翻譯文件或節(jié)點(diǎn)集合中的相同字符串刪除,當(dāng)添加或修改某一國(guó)語(yǔ)言時(shí),減少人工投入的時(shí)間和成本,可以節(jié)省網(wǎng)頁(yè)服務(wù)器的存儲(chǔ)容量,提高頁(yè)面加載和翻譯渲染的速度,以及降低翻譯文件集的冗余度。通過(guò)從服務(wù)器中下載并合并當(dāng)前HTML文件對(duì)應(yīng)的翻譯文件的語(yǔ)言字符串與其所有祖先翻譯文件公共的語(yǔ)言字符串,并將合并的語(yǔ)言字符串翻譯渲染,可以節(jié)省網(wǎng)頁(yè)服務(wù)器的存儲(chǔ)容量,提高頁(yè)面加載和翻譯渲染的速度,以及降低翻譯文件文件集的冗余度。進(jìn)ー步地,根據(jù)語(yǔ)言文件中查詢到的網(wǎng)頁(yè)處理時(shí)所支持的語(yǔ)言類型,將產(chǎn)品支持的語(yǔ)言種類集合和缺省語(yǔ)言以軟編碼的方式保存在単獨(dú)的XML文件,將各國(guó)語(yǔ)言的XML文件集保存在各自的文件夾中。毎次需要提供支持不同國(guó)語(yǔ)言種類集合或不同缺省語(yǔ)言的產(chǎn)品時(shí),無(wú)需修改Web頁(yè)面和腳本的源代碼,只需修改此XML文件,同時(shí)移除或添加對(duì)應(yīng)的文件夾即可。進(jìn)ー步地,為字面值相同的語(yǔ)言字符串設(shè)置具有相同name屬性的標(biāo)簽,再將該屬性名稱寫(xiě)入到相同的語(yǔ)言字符串的鍵名,可以在網(wǎng)頁(yè)切換時(shí)將標(biāo)簽的name屬性作為索引,以關(guān)聯(lián)掃描查找可擴(kuò)展標(biāo)記語(yǔ)言XM L文件集中的相同語(yǔ)言字符串,同時(shí)進(jìn)一歩降低了可擴(kuò)展標(biāo)記語(yǔ)言XML文件集中語(yǔ)言字符串的冗余度。進(jìn)ー步地,通過(guò)采用回調(diào)隊(duì)列技術(shù),當(dāng)用戶選擇切換語(yǔ)言時(shí)或者網(wǎng)頁(yè)加載時(shí),只需執(zhí)行隊(duì)列中的少量回調(diào)函數(shù)即可,從而提高了用戶選擇切換語(yǔ)言時(shí)網(wǎng)頁(yè)或Web頁(yè)面的響應(yīng)速度,同時(shí)解決了當(dāng)用戶選擇切換語(yǔ)言時(shí),無(wú)法替換動(dòng)態(tài)語(yǔ)言字符串或者只能在切換語(yǔ)言的同時(shí)刷新網(wǎng)頁(yè)的問(wèn)題。
圖I是本發(fā)明第一實(shí)施方式中ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法的流程示意圖2是該支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法語(yǔ)言種類、HTML文件和XML文件之間的關(guān)系不意圖;圖3是該支添加Web頁(yè)面支持的第一國(guó)語(yǔ)言的工作流程示意圖;圖4是該該添加Web頁(yè)面支持的第二國(guó)及以上語(yǔ)言的工作流程示意圖;圖5是本發(fā)明第三實(shí)施方式中ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載方法的流程示意圖;圖6是本發(fā)明第五實(shí)施方式中ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理系統(tǒng)的結(jié)構(gòu)示意圖;圖7是本發(fā)明第六實(shí)施方式中ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理系統(tǒng)的結(jié)構(gòu)示意圖;圖8是本發(fā)明第七實(shí)施方式中ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載系統(tǒng)的結(jié)構(gòu)示意圖;圖9是本發(fā)明第八實(shí)施方式中ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式在以下的敘述中,為了使讀者更好地理解本申請(qǐng)而提出了許多技術(shù)細(xì)節(jié)。但是,本領(lǐng)域的普通技術(shù)人員可以理解,即使沒(méi)有這些技術(shù)細(xì)節(jié)和基于以下各實(shí)施方式的種種變化和修改,也可以實(shí)現(xiàn)本申請(qǐng)各權(quán)利要求所要求保護(hù)的技術(shù)方案。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明的實(shí)施方式作進(jìn)ー步地詳細(xì)描述。本發(fā)明第一實(shí)施方式涉及ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法。圖I是該支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法的流程示意圖。該支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法基于ー個(gè)樹(shù)狀結(jié)構(gòu)的翻譯文件集,其中,每個(gè)超文本標(biāo)記語(yǔ)言HTML文件有對(duì)應(yīng)的翻譯文件。具體地說(shuō),如圖I所示,該支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法包括以下步驟在步驟101中,掃描翻譯文件集中所有的翻譯文件。此后進(jìn)入步驟102,將不同翻譯文件或同一翻譯文件不同節(jié)點(diǎn)集合中的相同的語(yǔ)言字符串提取出來(lái)。此后進(jìn)入步驟103,將提取出來(lái)的相同的語(yǔ)言字符串插入到該不同翻譯文件的最小公共祖先翻譯文件或該同一翻譯文件的公共節(jié)點(diǎn)集合。此后進(jìn)入步驟104,將原始翻譯文件或節(jié)點(diǎn)集合中的相同語(yǔ)言字符串刪除。此后結(jié)束本流程。通過(guò)合并不同的翻譯文件或同一翻譯文件不同節(jié)點(diǎn)集合中相同的字符串到最小公共祖先翻譯文件或同一翻譯文件的公共節(jié)點(diǎn)集合,再將原始翻譯文件或節(jié)點(diǎn)集合中的相同字符串刪除,當(dāng)添加或修改某一國(guó)語(yǔ)言時(shí),減少人工投入的時(shí)間和成本,可以節(jié)省網(wǎng)頁(yè)服務(wù)器的存儲(chǔ)容量,提高頁(yè)面加載和翻譯渲染的速度,以及降低翻譯文件集的冗余度。當(dāng)添加或修改某一國(guó)語(yǔ)言時(shí),如本來(lái)交給技術(shù)支持或翻譯公司翻譯的字符串有5000條,但其中有2000條可能是重復(fù)的字符串。經(jīng)過(guò)本發(fā)明的處理方法后,只剩下3000條需要人工翻譯了。此外,可以理解,超文本標(biāo)記語(yǔ)言(Hyper Text Makeup Language,簡(jiǎn)稱“HTML”)文件與可擴(kuò)充標(biāo)記語(yǔ)言(extensible Markup Language,簡(jiǎn)稱“XML”)文件之間的關(guān)系可以是一対一的關(guān)系,也可以是多對(duì)ー的關(guān)系,HTML文件與XML文件之間“ー對(duì)一”的關(guān)系為對(duì)于某一國(guó)語(yǔ)言,ー個(gè)HTML文件中的語(yǔ)言字符串保存在對(duì)應(yīng)的一個(gè)翻譯文件中。HTML文件與翻譯文件之間“多對(duì)一”的關(guān)系為對(duì)于某一國(guó)語(yǔ)言,多個(gè)HTML文件中的語(yǔ)言字符串分別保存在同一個(gè)翻譯文件不同的節(jié)點(diǎn)集合中。本發(fā)明中,語(yǔ)言字符串為超文本標(biāo)記語(yǔ)言(Hyper Text Makeup Language,簡(jiǎn)稱“HTML”)文件中與各國(guó)語(yǔ)言有差異、當(dāng)網(wǎng)頁(yè)切換語(yǔ)言時(shí)需要被替換的字符串,也包括通過(guò)網(wǎng)頁(yè)腳本代碼動(dòng)態(tài)插入頁(yè)面的字符串。本發(fā)明第二實(shí)施方式涉及ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法。圖2是該支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法的語(yǔ)言種類、HTML文件和XML文件之間的關(guān)系示意圖,圖3和圖4是該支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法的流 程示意圖。第二實(shí)施方式在第一實(shí)施方式的基礎(chǔ)上進(jìn)行了改進(jìn),主要改進(jìn)之處在于通過(guò)一個(gè)樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件集與ー種語(yǔ)言類型對(duì)應(yīng),可以減少了產(chǎn)品開(kāi)發(fā)過(guò)程中添加新語(yǔ)言和維護(hù)現(xiàn)有語(yǔ)言時(shí)的工作量。根據(jù)語(yǔ)言文件中查詢到的網(wǎng)頁(yè)處理時(shí)所支持的語(yǔ)言類型,將產(chǎn)品支持的語(yǔ)言種類集合和缺省語(yǔ)言以軟編碼的方式保存在単獨(dú)的XML文件,將各國(guó)語(yǔ)言的XML文件集保存在各自的文件夾中。毎次需要提供支持不同國(guó)語(yǔ)言種類集合或不同缺省語(yǔ)言的產(chǎn)品時(shí),無(wú)需修改Web頁(yè)面和腳本的源代碼,只需修改此XML文件,同時(shí)移除或添加對(duì)應(yīng)的文件夾即可。為字面值相同的語(yǔ)言字符串設(shè)置具有相同name屬性的標(biāo)簽,再將該屬性名稱寫(xiě)入到相同的語(yǔ)言字符串的鍵名,可以在網(wǎng)頁(yè)切換時(shí)將標(biāo)簽作為索引,以關(guān)聯(lián)掃描查找可擴(kuò)展標(biāo)記語(yǔ)言XML文件集中的相同語(yǔ)言字符串,同時(shí)進(jìn)一歩降低了可擴(kuò)展標(biāo)記語(yǔ)言XML文件集中語(yǔ)言字符串的冗余度。通過(guò)采用回調(diào)隊(duì)列技術(shù),當(dāng)用戶選擇切換語(yǔ)言時(shí)或者網(wǎng)頁(yè)加載時(shí),只需執(zhí)行隊(duì)列中的少量閉包即可,從而提高了用戶選擇切換語(yǔ)言時(shí)網(wǎng)頁(yè)或Web頁(yè)面的響應(yīng)速度,同時(shí)解決了當(dāng)用戶選擇切換語(yǔ)言吋,無(wú)法替換動(dòng)態(tài)語(yǔ)言字符串或者只能在切換語(yǔ)言的同時(shí)刷新網(wǎng)頁(yè)的問(wèn)題。具體地說(shuō)翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件;一個(gè)樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件集與ー種語(yǔ)言類型對(duì)應(yīng)。本發(fā)明中的技術(shù)方案是以可擴(kuò)展標(biāo)記語(yǔ)言XML文件作為翻譯文件的ー個(gè)特例進(jìn)行撰寫(xiě),在本發(fā)明的其他某些實(shí)施例中,翻譯文件也可以為用了 JSON(用來(lái)標(biāo)記數(shù)據(jù)對(duì)象或數(shù)組的ー種數(shù)據(jù)交換格式)或自定義格式等的翻譯文件,作為本發(fā)明的ー個(gè)優(yōu)選實(shí)施例,如圖2所示,語(yǔ)言類型L2對(duì)應(yīng)ー個(gè)樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件{XMLx,L2 I X e {A, B, CDE, p (A, B),p (A, B, CDE)}}。翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件,在掃描翻譯文件集中所有的翻譯文件的步驟之前,還包括以下步驟在語(yǔ)言文件中查詢網(wǎng)頁(yè)切換時(shí)所支持的語(yǔ)言類型,其中該語(yǔ)言文件用于保存網(wǎng)頁(yè)支持的語(yǔ)言類型的集合和缺省語(yǔ)言;根據(jù)網(wǎng)頁(yè)所支持的語(yǔ)言類型,選取對(duì)應(yīng)的樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件集。翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件,在掃描翻譯文件集中所有的翻譯文件的步驟之前,還包括以下步驟將對(duì)應(yīng)于XML文件中的相同字符串所在HTML文件的標(biāo)簽設(shè)置具有相同name屬性;將所述相同name屬性寫(xiě)到所述相同的語(yǔ)言字符串的鍵名中。
此外,可以理解,簡(jiǎn)而言之,該支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理(或稱為“合并上提”)操作就是將多個(gè)XML文件之間相同的語(yǔ)言字符串刪除,同時(shí)只保留ー份到它們的公共最小祖先級(jí)XML文件的公共節(jié)點(diǎn)集合或者公共祖先的操作?;?qū)⑼瑐€(gè)XML文件中不同節(jié)點(diǎn)集合之間相同的語(yǔ)言字符串刪除,同時(shí)只保留ー份到公共節(jié)點(diǎn)集合或者公共祖先的操作。由于以超文本標(biāo)記語(yǔ)言(Hyper Text Makeup Language,簡(jiǎn)稱“HTML”)文件中語(yǔ)言標(biāo)簽的名稱name屬性作為與可擴(kuò)充標(biāo)記語(yǔ)言(extensible Marku p Language,簡(jiǎn)稱“XML”)文件間的索引鍵、及經(jīng)過(guò)該支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理(或稱為“合并上提”)操作,相較于現(xiàn)有技術(shù)方案I和現(xiàn)有技術(shù)方案2中以HTML文件中語(yǔ)言標(biāo)簽的識(shí)別號(hào)id屬性作為與XML文件間的索引鍵、及未經(jīng)過(guò)合并上提操作的方法,當(dāng)大容量的網(wǎng)頁(yè)進(jìn)行語(yǔ)言切換時(shí)或者網(wǎng)頁(yè)加載時(shí)而言,需要進(jìn)行修訂的語(yǔ)言字符串個(gè)數(shù)將明顯減少,語(yǔ)言字符串之間的冗余度幾乎為0,即幾乎不存在相同重復(fù)的語(yǔ)言字符串需要進(jìn)行修訂,其中,需要進(jìn)行修訂的語(yǔ)言字符串的減少量與網(wǎng)頁(yè)或Web頁(yè)面?zhèn)€數(shù)、Web頁(yè)面內(nèi)部和Web頁(yè)面之間重復(fù)的字符串個(gè)數(shù)有關(guān),以30個(gè)HTML文件的網(wǎng)頁(yè)產(chǎn)品為例,r%通??蛇_(dá)到20-40%。在將原始翻譯文件或節(jié)點(diǎn)集合中的相同語(yǔ)言字符串刪除的步驟之后,還包括以下 步驟預(yù)先為所述HTML文件中的動(dòng)態(tài)語(yǔ)言字符串相關(guān)的各代碼段創(chuàng)建對(duì)應(yīng)的閉包;將閉包壓入到預(yù)先創(chuàng)建的回調(diào)隊(duì)列中,以在網(wǎng)頁(yè)語(yǔ)言切換時(shí),按照先進(jìn)回調(diào)隊(duì)列先執(zhí)行的原則,執(zhí)行回調(diào)隊(duì)列中各閉包對(duì)應(yīng)的代碼段。在網(wǎng)頁(yè)腳本代碼中創(chuàng)建回調(diào)隊(duì)列CbQueue,如果網(wǎng)頁(yè)(A)存在動(dòng)態(tài)語(yǔ)言字符串SdA,則將SdA相關(guān)的代碼段CodeSegA以閉包FuncA的形式壓入CbQueue,將CodeSegA的上下文信息添加為FuncA的屬性,方便FuncA內(nèi)部代碼調(diào)用。當(dāng)用戶切換語(yǔ)言吋,按照隊(duì)列順序依次執(zhí)行CbQueue中的所有回調(diào)函數(shù),其中,動(dòng)態(tài)語(yǔ)言字符串為以Web腳本代碼方式動(dòng)態(tài)插入到網(wǎng)頁(yè)中的語(yǔ)言字符串。作為本發(fā)明的ー個(gè)優(yōu)選實(shí)施方式,如圖3所示,該添加Web頁(yè)面支持的第一國(guó)語(yǔ)言的工作流程包括以下步驟在步驟301中,確認(rèn)Web頁(yè)面支持的第一國(guó)語(yǔ)言L1,編寫(xiě)語(yǔ)言文件XMU文件,以L1作為缺省語(yǔ)言U。此后進(jìn)入步驟302,為每個(gè)HTML文件中的相同的語(yǔ)言字符串標(biāo)簽添加name屬性。此后進(jìn)入步驟303,為每個(gè)HTML文件編寫(xiě)對(duì)應(yīng)的XML文件組(因?yàn)榇藭r(shí)Web頁(yè)面只支持一國(guó)語(yǔ)言,所以每個(gè)XML文件組只有ー個(gè)XML文件)。此后進(jìn)入步驟304,合并上提相同的語(yǔ)言字符串。此后進(jìn)入步驟305,對(duì)語(yǔ)言字符串進(jìn)行修訂或者翻譯,對(duì)于第一國(guó)語(yǔ)言此過(guò)程只有修訂字符串,對(duì)于第二國(guó)及以上語(yǔ)言此過(guò)程主要為翻譯字符串。此后進(jìn)入步驟306,將L1的XML文件集保存在以L1標(biāo)識(shí)的文件夾中,此后結(jié)束本流程。作為本發(fā)明的另ー個(gè)優(yōu)選實(shí)施例,如圖4所示,該添加Web頁(yè)面支持的第二國(guó)及以上語(yǔ)言的工作流程包括以下步驟在步驟401中,以Web頁(yè)面支持的第η國(guó)語(yǔ)言Ln擴(kuò)充語(yǔ)言文件XMK文件,并確認(rèn)
缺省語(yǔ)言。
此后進(jìn)入步驟402,在每個(gè)XML文件組中添加新語(yǔ)言Ln的XML文件(XMLx,to)。此后進(jìn)入步驟403,對(duì)語(yǔ)言字符串進(jìn)行修訂或者翻譯,由于添加Web頁(yè)面支持的第一國(guó)語(yǔ)言時(shí)已經(jīng)過(guò)合并上提操作,在添加第二國(guó)及以上語(yǔ)言Ln時(shí)無(wú)需重復(fù)進(jìn)行,只需按照現(xiàn)有的L1的XML文件集對(duì)L2的語(yǔ)言字符串進(jìn)行翻譯即可。因此,需翻譯的語(yǔ)言字符串個(gè)數(shù)將減少(相對(duì)于現(xiàn)有技術(shù)方案I和現(xiàn)有技術(shù)方案2)。此后進(jìn)入步驟404,將Ln的XML文件集保存在以Ln標(biāo)識(shí)的文件夾中,此后結(jié)束本流程。同樣,在Web頁(yè)面的維護(hù)過(guò)程中,如果發(fā)現(xiàn)某一國(guó)語(yǔ)言(Ln)的字符串S有誤需修改吋,只需修改S所在XML中的ー處即可,避免由于S在Web頁(yè)面中多處出現(xiàn),導(dǎo)致部分遺漏而未修改的問(wèn)題。本發(fā)明第三實(shí)施方式涉及ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載方法。圖5是該支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載方法的流程示意圖。該支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載方法基于ー個(gè)樹(shù)狀結(jié)構(gòu)的 翻譯文件集,其中,每個(gè)超文本標(biāo)記語(yǔ)言HTML文件有對(duì)應(yīng)的翻譯文件。具體地說(shuō),如圖5所示,該支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載方法包括以下步驟在步驟501中,從服務(wù)器中下載當(dāng)前HTML文件對(duì)應(yīng)的翻譯文件及該翻譯文件對(duì)應(yīng)的所有祖先翻譯文件。此后進(jìn)入步驟502,將翻譯文件的語(yǔ)言字符串與其所有祖先翻譯文件公共的語(yǔ)言字符串合井。此后進(jìn)入步驟503,將合并的語(yǔ)言字符串插入或替換HTML文件的語(yǔ)言標(biāo)簽內(nèi)容,進(jìn)行多語(yǔ)言的顯示或切換。此后結(jié)束本流程。通過(guò)從服務(wù)器中下載并合并當(dāng)前HTML文件對(duì)應(yīng)的翻譯文件的語(yǔ)言字符串與其所有祖先翻譯文件公共的語(yǔ)言字符串,并將合并的語(yǔ)言字符串翻譯渲染,可以節(jié)省網(wǎng)頁(yè)服務(wù)器的存儲(chǔ)容量,提高頁(yè)面加載和翻譯渲染的速度,以及降低翻譯文件文件集的冗余度。此外,可以理解,超文本標(biāo)記語(yǔ)言(Hyper Text Makeup Language,簡(jiǎn)稱“HTML”)文件與可擴(kuò)充標(biāo)記語(yǔ)言(extensible Markup Language,簡(jiǎn)稱“XML”)文件之間的關(guān)系可以是一対一的關(guān)系,也可以是多對(duì)ー的關(guān)系,HTML文件與XML文件之間“ー對(duì)一”的關(guān)系為對(duì)于某一國(guó)語(yǔ)言,ー個(gè)HTML文件中的語(yǔ)言字符串保存在對(duì)應(yīng)的ー個(gè)XML文件中。HTML文件與XML文件之間“多對(duì)一”的關(guān)系為對(duì)于某一國(guó)語(yǔ)言,多個(gè)HTML文件中的語(yǔ)言字符串分別保存在同一個(gè)XML文件不同的節(jié)點(diǎn)集合中。本發(fā)明中,語(yǔ)言字符串為超文本標(biāo)記語(yǔ)言(Hyper Text Makeup Language,簡(jiǎn)稱“HTML”)文件中與各國(guó)語(yǔ)言有差異、當(dāng)網(wǎng)頁(yè)切換語(yǔ)言時(shí)需要被替換的字符串,也包括通過(guò)網(wǎng)頁(yè)腳本代碼動(dòng)態(tài)插入頁(yè)面的字符串。這里,服務(wù)器也可以稱為網(wǎng)頁(yè)服務(wù)器,當(dāng)稱為網(wǎng)頁(yè)服務(wù)器時(shí),客戶端為瀏覽網(wǎng)頁(yè)的瀏覽器。本發(fā)明第四實(shí)施方式涉及ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載方法。第四實(shí)施方式在第三實(shí)施方式的基礎(chǔ)上進(jìn)行了改進(jìn),主要改進(jìn)之處在于通過(guò)ー個(gè)樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件集與ー種語(yǔ)言類型對(duì)應(yīng),可以減少了產(chǎn)品開(kāi)發(fā)過(guò)程中添加新語(yǔ)言和維護(hù)現(xiàn)有語(yǔ)言時(shí)的工作量。在網(wǎng)頁(yè)語(yǔ)言切換時(shí)或網(wǎng)頁(yè)加載時(shí)將具有相同name屬性的標(biāo)簽的屬性值作為索引鍵,以關(guān)聯(lián)掃描查找可擴(kuò)展標(biāo)記語(yǔ)言XML文件集中的相同的語(yǔ)言字符串,同時(shí)進(jìn)一歩降低了可擴(kuò)展標(biāo)記語(yǔ)言XML文件集中語(yǔ)言字符串的冗余度。網(wǎng)頁(yè)加載采用回調(diào)隊(duì)列技術(shù),只需執(zhí)行隊(duì)列中的少量閉包即可,從而提高了用戶選擇切換語(yǔ)言時(shí)網(wǎng)頁(yè)或Web頁(yè)面的響應(yīng)速度,同時(shí)解決了當(dāng)用戶選擇切換語(yǔ)言時(shí),無(wú)法替換動(dòng)態(tài)語(yǔ)言字符串或者只能在切換語(yǔ)言的同時(shí)刷新網(wǎng)頁(yè)的問(wèn)題。具體地說(shuō)翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件;一個(gè)樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件集與ー種語(yǔ)言類型對(duì)應(yīng)。在從服務(wù)器中下載當(dāng)前HTML 文件對(duì)應(yīng)的翻譯文件及該翻譯文件對(duì)應(yīng)的所有祖先翻譯文件的步驟之前,還包括以下步驟加載ー個(gè)語(yǔ)言文件,其中該語(yǔ)言文件用于保存網(wǎng)頁(yè)支持的語(yǔ)言類型的集合和缺省
イ五古
レロロ ο在語(yǔ)言文件中查詢加載的網(wǎng)頁(yè)所支持的語(yǔ)言類型。根據(jù)網(wǎng)頁(yè)所支持的語(yǔ)言類型,選取對(duì)應(yīng)的樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件集。翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件,在將翻譯文件的語(yǔ)言字符串與其所有祖先翻譯文件公共的語(yǔ)言字符串合并的步驟中,還包括以下子步驟將XML文件及其所有祖先XML文件組合為ー個(gè)文檔結(jié)構(gòu);在合并后的文檔結(jié)構(gòu)中,掃描語(yǔ)言字符串的鍵名;將掃描的鍵名作為索引,插入或替換HTML文件的語(yǔ)言標(biāo)簽內(nèi)容。此外,可以理解,由于以超文本標(biāo)記語(yǔ)言(Hyper Text Makeup Language,簡(jiǎn)稱“HTML”)文件中語(yǔ)言標(biāo)簽的名稱name屬性作為與可擴(kuò)充標(biāo)記語(yǔ)言(extensible MarkupLanguage,簡(jiǎn)稱“XML”)文件間的索引鍵、及經(jīng)過(guò)該支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理(或稱為“合并上提”)操作,相較于現(xiàn)有技術(shù)方案I和現(xiàn)有技術(shù)方案2中以HTML文件中語(yǔ)言標(biāo)簽的id屬性作為與XML文件間的索引鍵、及經(jīng)過(guò)合并上提操作的方法,當(dāng)大容量的網(wǎng)頁(yè)進(jìn)行語(yǔ)言切換時(shí)或者網(wǎng)頁(yè)加載時(shí)而言,需要進(jìn)行修訂的語(yǔ)言字符串個(gè)數(shù)將明顯減少,語(yǔ)言字符串之間的冗余度幾乎為0,即幾乎不存在相同重復(fù)的語(yǔ)言字符串需要進(jìn)行修訂,其中,需要進(jìn)行修訂的語(yǔ)言字符串的減少量與網(wǎng)頁(yè)或Web頁(yè)面?zhèn)€數(shù)、Web頁(yè)面內(nèi)部和Web頁(yè)面之間重復(fù)的字符串個(gè)數(shù)有關(guān),以30個(gè)HTML文件的網(wǎng)頁(yè)產(chǎn)品為例,r%通常可達(dá)到20-40%。將合并的語(yǔ)言字符串插入或替換HTML文件的語(yǔ)言標(biāo)簽內(nèi)容,進(jìn)行多語(yǔ)言的顯示或切換(或渲染)的步驟,還包括以下子步驟按照先進(jìn)回調(diào)隊(duì)列先執(zhí)行的原則,執(zhí)行回調(diào)隊(duì)列中各閉包對(duì)應(yīng)的代碼段,其中閉包由HTML文件中的動(dòng)態(tài)語(yǔ)言字符串相關(guān)的對(duì)應(yīng)代碼段創(chuàng)建而成,回調(diào)隊(duì)列可為空。作為本發(fā)明的另ー個(gè)優(yōu)選實(shí)施例,本發(fā)明的技術(shù)方案可由以下過(guò)程實(shí)現(xiàn)I.建立ー個(gè)XML文件(XMU),保存產(chǎn)品支持的語(yǔ)言類型集合(CJ和缺省語(yǔ)言(Ld)。通過(guò)Web頁(yè)面訪問(wèn)產(chǎn)品時(shí),首先判斷瀏覽器的當(dāng)前語(yǔ)言(LB),如果Lb e 4,則以Lb作為Web頁(yè)面的缺省語(yǔ)言顯示,否則以Ld作為Web頁(yè)面的缺省語(yǔ)言顯示。2.根據(jù)Web頁(yè)面的HTML文件建立對(duì)應(yīng)的XML文件組,組中的每ー個(gè)XML文件保存一國(guó)語(yǔ)言(L1, L1 e Cl)的字符串,以HTML文件中語(yǔ)言標(biāo)簽的name屬性作為與XML文件間的索引鍵。保存相同語(yǔ)言L1的XML文件組成ー個(gè)XML文件集({XMLU}),保存在以L1標(biāo)識(shí)的文件夾中。3.每ー個(gè)XML文件(XMLa)至少包含ー個(gè)以本文件名(A)命名的節(jié)點(diǎn)集合(XMLa<A> )和ー個(gè)公共節(jié)點(diǎn)集合(XMLA〈com> )。XML文件之間具有層級(jí)關(guān)系。加載ー個(gè)Web頁(yè)面(A)或切換語(yǔ)言時(shí)(語(yǔ)言為L(zhǎng)1),首先將該HTML文件(HTMLa)關(guān)聯(lián)的XML文件(XMLA,u)的本節(jié)點(diǎn)集合(XMLa,u〈A>)、XMLa,u的公共節(jié)點(diǎn)集合(XMLA,u〈Com>)、XMLa, L1的父級(jí)XML文件(XMLp(a),u)的公共節(jié)點(diǎn)集合(XMLp(a),u〈com>)、XMLa, u的祖父級(jí)XML文件(XMLP2(A), u)的公共節(jié)點(diǎn)集合(XMLP2(A), u〈Com>)……和XMLa,u的根父級(jí)XML文件(XMLp1Vu)的公共節(jié)點(diǎn)集合(XMLPn(A),u〈Com>)組合為ー個(gè)XML文檔結(jié)構(gòu)(XMLDtx^1 ),然后通過(guò)索引鍵,從XMLDtx^1中查找并替換HTMLa中的字符串。如果XMLa與XMLb具有相同祖先(可能XMLa與XMLb同級(jí),也可能XMLa與XMLb的祖先同級(jí)或相反,也可能XMLa即是XMLb的祖先或相反),且XMLa與XMLb中具有相同的字符串Sa和SB,則在XMLA與XMLB的公共最小祖先級(jí)XML文件(XMLp (AB))的公共節(jié)點(diǎn)集合(XMLp(AB)〈Com>)中添加字符串SabCSab = Sa = Sb),并將XMLa中的Sa和XMLb中的Sb刪除(此 操作以下簡(jiǎn)稱為“合并上提”)。4. HTML文件與XML文件之間并非必須--對(duì)應(yīng)(以下簡(jiǎn)稱“一対一”的關(guān)系),也
可以多個(gè)HTML文件關(guān)聯(lián)同一組XML文件(以下簡(jiǎn)稱“多對(duì)一”的關(guān)系)。例如三個(gè)HTML文件(HTMLC、HTMLd 和 HTMLe)關(guān)聯(lián)同一組 XML 文件({XMLCDE,Li I Li e Cj ),HTMLc, HTMLd 和HTMLe的語(yǔ)言字符串分別保存在XMLqie的節(jié)點(diǎn)集合XMLmE〈C>、節(jié)點(diǎn)集合XMLmE〈D>和節(jié)點(diǎn)集合XMLmE〈E>中,同時(shí)在XMLqie中建立公共節(jié)點(diǎn)集合XMLmE〈COm>。如果XMLmE〈C>和XMLmE〈D>中具有相同的字符串S。和SD,則在XMLmE〈com>中添加字符串Sm (Scd=Sc=Sd),并將XMLmE〈C>中的S。和XMLmE〈D>中的Sd刪除(此操作以下簡(jiǎn)稱為“合并上提”);如果XMLqie與另ー個(gè)XML文件(XMLf)具有相同祖先,且XMLqie與XMLf中具有相同的字符串Sqie和SF,則將Sqie和Sf合并上提至XMLqie與XMLf的公共最小祖先級(jí)XML文件(XMLP(CDE,F(xiàn)))的公共節(jié)點(diǎn)集合 XMLp(CDE,F(xiàn))〈COm> 中。5.在Web腳本代碼中創(chuàng)建回調(diào)隊(duì)列CbQueue,如果Web頁(yè)面(A)存在動(dòng)態(tài)語(yǔ)言字符串SdA,則將SdA相關(guān)的代碼段CodeSegA以閉包FuncA的形式壓入CbQueue,將CodeSegA的上下文信息添加為FuncA的屬性,予FuncA內(nèi)部代碼調(diào)用。當(dāng)用戶切換語(yǔ)言時(shí),按照隊(duì)列順序依次執(zhí)行CbQueue中的所有閉包。如上圖2所示,語(yǔ)言類型集合包含三種語(yǔ)言類型(Cf (L17L27L3I ),其中L1為缺省語(yǔ)言;共有5個(gè)Web頁(yè)面(5個(gè)HTML文件,HTMLa HTMLe),如圖I中以斜條紋背景標(biāo)出的3個(gè)XML文件({XMLa,u I Li e Cj )構(gòu)成技術(shù)方案2所述的ー個(gè)XML文件組,其中HTMLA、HTMLb與各自對(duì)應(yīng)的XML文件組({XMLa,u}、{XMLb;lJ )之間是“一対一”的關(guān)系,HTMLc、HTMLd、HTMLe與共同的XML文件組({XMLmE,u I Li e Cj )之間是“多對(duì)一”的關(guān)系;如圖I中實(shí)線框包圍的 5 個(gè) XML 文件({XMLx’L2 I Xe {A, B, CDE, p (A, B),p (A, B, CDE)}})構(gòu)成技術(shù)方案 2 所述的ー個(gè)XML文件集,其中文件集{XMLx,u}、{XMLx;L2}、{XMLx;L3}分別保存在以L1. L2, L3標(biāo)識(shí)的文件夾中。以語(yǔ)言L1為例,文件集{XMLx,u}共包括3個(gè)層級(jí)。其中,XMLp(A;B);L1為XMLjPXMLb 的父級(jí) XML, XMLp(a;b;cde);l1 為 XMLP(A,B),U 和 XMLqie 的父級(jí) XML。對(duì)于“一対一”關(guān)系的葉子 XML (XMLA,^jPXM Lb;l1)的公共節(jié)點(diǎn)集合(XMLA,u〈Com> 和 XMLB,u〈Com>)為空集0。對(duì)于非葉子X(jué)ML (XMLp(a,b),u和XMLp(a,b,_,u)的非公共節(jié)點(diǎn)集合《11^,_〈?(4,B) >和XMLp(A,B,mE),u〈p(A,B, CDE) >)可能為0,也可能非0。以XMLP(A,B),U為例,當(dāng)存在主框架(HTMLab),而HTMLa和HTMLb作為HTMLab的包含另外ー個(gè)文檔的內(nèi)聯(lián)框架iframe或通過(guò)在瀏覽器與Web服務(wù)器之間使用異步數(shù)據(jù)傳輸(Asynch ronous JavaScript and XML,簡(jiǎn)稱“ Ajax”)動(dòng)態(tài)插入 HTMLab 吋,XMLp(a;b);l1 與 HTMLab 對(duì)應(yīng),即 XMLp(A,B),u〈p (A,B) > 中保存XMLp(a;b);l1 中的語(yǔ)言字符串,此 Ν·ΧΜ _ρ(Λ,!^ι<Ρ(Α,Β)>#0。當(dāng) HTMLa 和 HTMLb 作為獨(dú)立文檔時(shí),XMLp(a,b),l1<P(A,B)>=0,XMLp(a,b),u只作為用f保存從XMLa和XMLb合并上提的字符串的ー個(gè)虛擬層級(jí)XML文件。除非作為根父級(jí)的虛擬層級(jí)XML文件,否則不建議保留。以語(yǔ)言L1為例,XML之間的合并上提關(guān)系(以符號(hào)“}夂>”表示)如
xmlat1<a>-’XMLt^amT,<com>
XMLbxi <B> JP(A'B)X1
XMLaxi <A> IXMLp(A3)X1<p(A,B)>| ^ XMLp(A3XL1<com> xmlal1<a> I’ _ > =^> XML .. R r 11 くcom〉
XMLcdexi <C>JP(AiBiCDL)iLlXMLp(A_<P(A,B), I ^ XML ABCDE)L1<com>
XMLc即 <C> JP(AACDE)JJ
XMLaxi <A>I
XMLp(i,aCDEXL1<p(A,B,CDE)>J ^ XML腳’卿 <com>p(ん),^XML w くcom〉
XMLpcwdexli <p(A,B,CDE)>j幽し導(dǎo)1
XMLcdejj <C> I
XMLp(AACDE)!L1<P(A,B,CDE)>| ^ XMLP(A,BiCDEXLl <com>等。XML之間的合并上提不僅可在兩個(gè)XML間進(jìn)行,也可在多個(gè)XML間進(jìn)行,如(以3個(gè)XML間為例)
XMLaxi <A>
XMLb li <B> > XMLp(AiB)X1 <com>
XMLp(入B),L1 <p(A,B)>
權(quán)利要求
1.ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法,基于ー個(gè)樹(shù)狀結(jié)構(gòu)的翻譯文件集,其中,每個(gè)超文本標(biāo)記語(yǔ)言HTML文件有對(duì)應(yīng)的翻譯文件,其特征在于,包括以下步驟 掃描所述翻譯文件集中所有的翻譯文件; 將不同翻譯文件或同一翻譯文件不同節(jié)點(diǎn)集合中的相同的語(yǔ)言字符串提取出來(lái),并插入到該不同翻譯文件的最小公共祖先翻譯文件或該同一翻譯文件的公共節(jié)點(diǎn)集合; 將原始翻譯文件或節(jié)點(diǎn)集合中的相同語(yǔ)言字符串刪除。
2.根據(jù)權(quán)利要求I所述的支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法,其特征在干, 所述翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件; 一個(gè)樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件集與ー種語(yǔ)言類型對(duì)應(yīng)。
3.根據(jù)權(quán)利要求I所述的支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法,其特征在干, 所述翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件; 在所述掃描所述翻譯文件集中所有的翻譯文件的步驟之前,還包括以下步驟 在語(yǔ)言文件中查詢網(wǎng)頁(yè)切換時(shí)所支持的語(yǔ)言類型,其中該語(yǔ)言文件用于保存網(wǎng)頁(yè)支持的語(yǔ)言類型的集合和缺省語(yǔ)言; 根據(jù)網(wǎng)頁(yè)所支持的語(yǔ)言類型,選取對(duì)應(yīng)的樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件集。
4.根據(jù)權(quán)利要求I所述的支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法,其特征在干, 所述翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件; 在所述掃描所述翻譯文件集中所有的翻譯文件的步驟之前,還包括以下步驟 將對(duì)應(yīng)于XM L文件中的相同字符串所在HTML文件的標(biāo)簽設(shè)置具有相同name屬性; 將所述相同name屬性寫(xiě)到所述相同的語(yǔ)言字符串的鍵名中。
5.根據(jù)權(quán)利要求I所述的支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法,其特征在于,在所述將原始翻譯文件或節(jié)點(diǎn)集合中的相同語(yǔ)言字符串刪除的步驟之后,還包括以下步驟 預(yù)先為所述HTML文件中的動(dòng)態(tài)語(yǔ)言字符串相關(guān)的各代碼段創(chuàng)建對(duì)應(yīng)的閉包; 將所述閉包壓入到預(yù)先創(chuàng)建的回調(diào)隊(duì)列中,以在網(wǎng)頁(yè)語(yǔ)言切換時(shí),按照先進(jìn)回調(diào)隊(duì)列先執(zhí)行的原則,執(zhí)行回調(diào)隊(duì)列中各閉包對(duì)應(yīng)的代碼段。
6.ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載方法,基于ー個(gè)樹(shù)狀結(jié)構(gòu)的翻譯文件集,其中,每個(gè)超文本標(biāo)記語(yǔ)言HTML文件有對(duì)應(yīng)的翻譯文件,其特征在于,包括以下步驟 從服務(wù)器中下載當(dāng)前HTML文件對(duì)應(yīng)的翻譯文件及該翻譯文件對(duì)應(yīng)的所有祖先翻譯文件; 將所述翻譯文件的語(yǔ)言字符串與其所有祖先翻譯文件公共的語(yǔ)言字符串合井; 將合并的語(yǔ)言字符串插入或替換HTML文件的語(yǔ)言標(biāo)簽內(nèi)容,進(jìn)行多語(yǔ)言的顯示或切換。
7.根據(jù)權(quán)利要求6所述的支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載方法,其特征在干, 所述翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件; 一個(gè)樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件集與ー種語(yǔ)言類型對(duì)應(yīng)。
8.根據(jù)權(quán)利要求6所述的支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載方法,其特征在于,在所述從服務(wù)器中下載當(dāng)前HTML文件對(duì)應(yīng)的翻譯文件及該翻譯文件對(duì)應(yīng)的所有祖先翻譯文件的步驟之前,還包括以下步驟 加載ー個(gè)語(yǔ)言文件,其中該語(yǔ)言文件用于保存網(wǎng)頁(yè)支持的語(yǔ)言類型的集合和缺省語(yǔ)言; 在所述語(yǔ)言文件中查詢加載的網(wǎng)頁(yè)所支持的語(yǔ)言類型; 根據(jù)網(wǎng)頁(yè)所支持的語(yǔ)言類型,選取對(duì)應(yīng)的樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件集。
9.根據(jù)權(quán)利要求6所述的支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載方法,其特征在干, 所述翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件; 在所述翻譯文件的語(yǔ)言字符串與其所有祖先翻譯文件公共的語(yǔ)言字符串合并的步驟中,還包括以下子步驟 將XML文件及其所有祖先XML文件組合為ー個(gè)文檔結(jié)構(gòu); 在合并后的文檔結(jié)構(gòu)中,掃描語(yǔ)言字符串的鍵名; 將掃描的鍵名作為索引,插入或替換HTML文件的語(yǔ)言標(biāo)簽內(nèi)容。
10.根據(jù)權(quán)利要求6所述的支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載方法,其特征在于,所述翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件; 所述將合并的語(yǔ)言字符串插入或替換HTML文件的語(yǔ)言標(biāo)簽內(nèi)容,進(jìn)行多語(yǔ)言的顯示或切換的步驟,還包括以下子步驟 按照先進(jìn)回調(diào)隊(duì)列先執(zhí)行的原則,執(zhí)行回調(diào)隊(duì)列中各閉包對(duì)應(yīng)的代碼段,其中閉包由所述HTML文件中的動(dòng)態(tài)語(yǔ)言字符串相關(guān)的對(duì)應(yīng)代碼段創(chuàng)建而成,回調(diào)隊(duì)列可為空。
11.ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理系統(tǒng),基于ー個(gè)樹(shù)狀結(jié)構(gòu)的翻譯文件集,其中,每個(gè)超文本標(biāo)記語(yǔ)言HTML文件有對(duì)應(yīng)的翻譯文件,其特征在于,包括以下模塊 掃描模塊,用于掃描所述翻譯文件集中所有的翻譯文件; 提取模塊,用于將所述掃描模塊所掃描的不同翻譯文件或同一翻譯文件不同節(jié)點(diǎn)集合中的相同的語(yǔ)言字符串提取出來(lái); 插入模塊,用于將所述提取模塊所提取的相同的語(yǔ)言字符串插入到該不同翻譯文件的最小公共祖先翻譯文件或該同一翻譯文件的公共節(jié)點(diǎn)集合; 刪除模塊,用于將原始翻譯文件或節(jié)點(diǎn)集合中的所述提取模塊所提取的相同語(yǔ)言字符串刪除。
12.根據(jù)權(quán)利要求11所述的支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理系統(tǒng),其特征在于,所述翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件; 一個(gè)樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件集與ー種語(yǔ)言類型對(duì)應(yīng)。
13.根據(jù)權(quán)利要求11所述的支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理系統(tǒng),其特征在于,所述翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件; 所述系統(tǒng)還包括以下模塊 查詢模塊,用于在語(yǔ)言文件中查詢網(wǎng)頁(yè)切換時(shí)所支持的語(yǔ)言類型,其中該語(yǔ)言文件用于保存網(wǎng)頁(yè)支持的語(yǔ)言類型的集合和缺省語(yǔ)言; 選擇模塊,用于根據(jù)所述查詢模塊所查詢到的網(wǎng)頁(yè)所支持的語(yǔ)言類型,選取對(duì)應(yīng)的樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件集。
14.根據(jù)權(quán)利要求11所述的支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理系統(tǒng),其特征在于,所述翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件; 所述系統(tǒng)還包括以下模塊 設(shè)置模塊,用于為對(duì)應(yīng)于XML文件中的相同字符串所在HTML文件的標(biāo)簽設(shè)置具有相同name屬性; 寫(xiě)入模塊,用于將所述設(shè)置模塊所設(shè)置的相同name屬性寫(xiě)到所述相同的語(yǔ)言字符串的鍵名中。
15.根據(jù)權(quán)利要求11所述的支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理系統(tǒng),其特征在于,還包括以下模塊 隊(duì)列模塊,用于預(yù)先為所述HTML文件中的動(dòng)態(tài)語(yǔ)言字符串相關(guān)的各代碼段創(chuàng)建對(duì)應(yīng)的閉包,并將閉包壓入到預(yù)先創(chuàng)建的回調(diào)隊(duì)列中; 回調(diào)模塊,用于在網(wǎng)頁(yè)語(yǔ)言切換時(shí),按照先進(jìn)回調(diào)隊(duì)列先執(zhí)行的原則,執(zhí)行回調(diào)隊(duì)列中各閉包對(duì)應(yīng)的代碼段。
16.ー種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載系統(tǒng),基于ー個(gè)樹(shù)狀結(jié)構(gòu)的翻譯文件集,其中,每個(gè)超文本標(biāo)記語(yǔ)言HTML文件有對(duì)應(yīng)的翻譯文件,其特征在于,包括以下模塊 下載模塊,用于從服務(wù)器中下載當(dāng)前HTML文件對(duì)應(yīng)的翻譯文件及該翻譯文件對(duì)應(yīng)的所有祖先翻譯文件; 合并模塊,用于將所述下載模塊所下載的翻譯文件的語(yǔ)言字符串與其所有祖先翻譯文件公共的語(yǔ)言字符串合并; 翻譯渲染模塊,用于將所述合并模塊所合并的語(yǔ)言字符串插入或替換HTML文件的語(yǔ)言標(biāo)簽內(nèi)容,進(jìn)行多語(yǔ)言的顯示或切換。
17.根據(jù)權(quán)利要求16所述的支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載系統(tǒng),其特征在于,所述翻譯文件為可擴(kuò)展標(biāo)記語(yǔ)言XML文件; 一個(gè)樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件集與ー種語(yǔ)言類型對(duì)應(yīng)。
18.根據(jù)權(quán)利要求16所述的支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)加載系統(tǒng),其特征在于,還包括以下模塊 加載模塊,用于加載一個(gè)語(yǔ)言文件,其中該語(yǔ)言文件用于保存網(wǎng)頁(yè)支持的語(yǔ)言類型的集合和缺省語(yǔ)言; 語(yǔ)言查詢模塊,用于在所述加載模塊所加載的語(yǔ)言文件中查詢加載的網(wǎng)頁(yè)所支持的語(yǔ)言類型; 選取模塊,用于根據(jù)所述語(yǔ)言查詢模塊所選取的網(wǎng)頁(yè)所支持的語(yǔ)言類型,選取對(duì)應(yīng)的樹(shù)狀結(jié)構(gòu)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件集。
動(dòng)態(tài)翻譯渲染模塊,用于按照先進(jìn)回調(diào)隊(duì)列先執(zhí)行的原則,執(zhí)行回調(diào)隊(duì)列中各索引函數(shù)對(duì)應(yīng)的代碼段,其中索引函數(shù)由所述HTML文件中的動(dòng)態(tài)語(yǔ)言字符串相關(guān)的對(duì)應(yīng)代碼段創(chuàng)建而成,回調(diào)隊(duì)列可為空。
全文摘要
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用領(lǐng)域,公開(kāi)了一種支持多國(guó)語(yǔ)言的網(wǎng)頁(yè)處理方法、網(wǎng)頁(yè)加載方法及其系統(tǒng)。當(dāng)添加或修改某一國(guó)語(yǔ)言時(shí),減少人工投入的時(shí)間和成本。節(jié)省網(wǎng)頁(yè)服務(wù)器的存儲(chǔ)容量,提高頁(yè)面加載和翻譯渲染的速度,以及降低翻譯文件集的冗余度。本發(fā)明中,基于一個(gè)樹(shù)狀結(jié)構(gòu)的翻譯文件集,其中,每個(gè)超文本標(biāo)記語(yǔ)言HTML文件有對(duì)應(yīng)的翻譯文件,包括以下步驟掃描翻譯文件集中所有的翻譯文件;將不同翻譯文件或同一翻譯文件不同節(jié)點(diǎn)集合中的相同的語(yǔ)言字符串提取出來(lái),并插入到該不同翻譯文件的最小公共祖先翻譯文件或該同一翻譯文件的公共節(jié)點(diǎn)集合;將原始翻譯文件或節(jié)點(diǎn)集合中的相同語(yǔ)言字符串刪除。
文檔編號(hào)G06F17/28GK102693322SQ20121018282
公開(kāi)日2012年9月26日 申請(qǐng)日期2012年6月1日 優(yōu)先權(quán)日2012年6月1日
發(fā)明者萬(wàn)鵬, 向曉, 吳飏, 張小媛, 石炎明 申請(qǐng)人:杭州海康威視數(shù)字技術(shù)股份有限公司