專利名稱:創(chuàng)建國際化網絡應用的系統(tǒng)和方法
技術領域:
本發(fā)明涉及一種創(chuàng)建國際化Web應用的系統(tǒng)和方法,具體涉及一種在瀏 覽器端通過Ajax來處理文檔對象模型(DOM)以創(chuàng)建國際化Web應用的系統(tǒng) 和方法。
背景技術:
為了向使用不同語言的用戶提供網絡服務,需要提供國際化的Web應用。 然而,創(chuàng)建良好的國際化Web應用并不筒單,其傳統(tǒng)方法如下。首先,開發(fā) 者檢查基于HTML、 JSP、 PHP等的靜態(tài)或動態(tài)網頁以定位其中需要國際化的 內容。然后,開發(fā)者從網頁中分離所定位的內容,將由此提取的內容存儲在 屬性文件中,并且修改該網頁以添加代碼以便加載該屬性文件或者施加國際 化規(guī)則以轉換日期、貨幣和人名等。然后,翻譯者獲得該屬性文件,并且根 據(jù)當前地區(qū)而將其中存儲的內容翻譯為不同語言的內容。最后,測試者針對 各個地區(qū)而4企查相應的Web應用的翻譯結果是否正確。
然而,在上述傳統(tǒng)國際化方法中存在以下問題
(1) 在標記語言網頁中識別需要翻譯的可視內容并不容易。網頁的標記語 言被設計用于由網絡瀏覽器進行可視呈現(xiàn)。然而,開發(fā)者不得不仔細檢查網 頁的標記或代碼以找出需要翻譯的可視內容。在沒有可視提示的情況下,這 并不容易,并且難以保證不會出現(xiàn)遺漏。
(2) 翻譯者不能獲得足夠的上下文信息來翻譯屬性文件。例如, 一些詞語 或句子在某些語境下可能具有特殊的含義。然而,由于這些詞語或句子被分 散地保存在屬性文件中,因此翻譯者不能獲得足夠的上下文信息,導致翻譯 質量不佳。
(3) 不便實時調整翻譯后的網頁的頁面布局。視覺體驗對于Web應用來說 是非常重要的。然而,將一種語言的文本翻譯為另一語言的文本可能會引起 文本長度的變化,從而導致頁面布局變化。因此,開發(fā)者需要在網頁上預留 空間或者預先調整網頁布局以適應翻譯前后的文本長度變化,否則網頁在翻譯后將呈現(xiàn)不合適的外觀。翻譯者可以調整翻譯以避免這樣的問題,但他/她 只能在翻譯完成之后進行該調整,而不能在翻譯期間獲得即時的可視反饋。
(4)不能高效地報告翻譯錯誤。在測試期間,當測試者檢查翻譯后的網頁
并且發(fā)現(xiàn)某些內容被漏掉或者被錯誤翻譯時,他/她需要創(chuàng)建/打開一個錯誤
(bug)文件來報告該錯誤。測試者需要在錯誤文件中手動地輸入所使用的瀏覽
器類型、地區(qū)設置以及如何再現(xiàn)該問題。開發(fā)者和翻譯者再現(xiàn)該錯誤報告, 并且根據(jù)測試者輸入的內容而逐步確定該錯誤。這一過程的效率較低。
綜上所述,傳統(tǒng)的國際化方法在各個階段和各個角色之間共享的上下文 過少。此外,網頁呈現(xiàn)的可視信息對于各個階段和各個角色都是非常重要的, 然而在傳統(tǒng)方法的國際化過程中缺少這一信息。而且,翻譯者也不能獲得關 于頁面布局的即時可視反饋。這使得國際化易于出現(xiàn)問題且效率較低。
因此,需要一種能夠高效便利地創(chuàng)建國際化Web應用的系統(tǒng)和方法。
發(fā)明內容
考慮到以上問題而提出了本發(fā)明。本發(fā)明的一個目的是提供一種創(chuàng)建國 際化Web應用的系統(tǒng)和方法,其能夠使開發(fā)者容易地在網頁中定位需要國際 化的內容而不會出現(xiàn)遺漏。
本發(fā)明的另 一 目的是提供一種創(chuàng)建國際化Web應用的系統(tǒng)和方法,其使 得翻譯者在翻譯過程中能夠獲得足夠的上下文信息,并且能夠獲得即時的可 視反饋從而隨時調整網頁布局。
本發(fā)明的另一目的是提供一種創(chuàng)建國際化Web應用的系統(tǒng)和方法,其使 得測試者能夠方便地報告所發(fā)現(xiàn)的翻譯錯誤,而不需要手動輸入繁瑣的信息。
本發(fā)明的另 一 目的是提供一種創(chuàng)建國際化Web應用的系統(tǒng)和方法,其能 夠在國際化過程中在各個角色之間共享盡可能多的上下文信息,提高國際化 效率。
根據(jù)本發(fā)明的一個方面,提供了一種創(chuàng)建國際化網絡應用的方法,包括 響應于用戶激活瀏覽器的操作而將網頁加載到瀏覽器中;掃描該網頁的文檔 對象模型(DOM)樹以找出該網頁中所有可能需要翻譯的內容,并在瀏覽器上 可視地標記所述內容;響應于用戶在所述可能需要翻譯的內容中進行的直接 選擇而收集與該選擇對應的待翻譯內容有關的信息;以及根據(jù)所收集的信息 而從網頁中提取并且存儲待翻譯內容,以及存儲與所述待翻譯內容對應的翻譯后內容。
根據(jù)本發(fā)明的另一方面,提供了一種創(chuàng)建國際化網絡應用的系統(tǒng),包括 加載單元,響應于用戶激活瀏覽器的操作而將網頁加載到瀏覽器中;掃描單 元,掃描該網頁的DOM樹以找出該網頁中所有可能需要翻譯的內容,并且 在瀏覽器上可視地標記所述內容;收集單元,響應于用戶在所述可能需要翻 譯的內容中進行的直接選擇而收集與該選擇對應的待翻譯內容有關的信息; 和提取單元,根據(jù)所收集的信息而從網頁中提取并存儲待翻譯內容,以及存 儲與所述待翻譯內容對應的翻譯后內容。
根據(jù)本發(fā)明實施例的創(chuàng)建國際化Web應用的系統(tǒng)和方法能夠提高國際化 效率和翻譯質量,其主要具有以下優(yōu)點
(1) 開發(fā)者能夠直接在瀏覽器中看到網頁上所有可能需要翻譯的內容,并 且通過原地選擇和操作來進行標注以確定待翻譯內容。這可以減少定位待翻 譯內容所需的工作量并且使得遺漏內容的可能性最小化。
(2) 翻譯者可以容易地在網頁中識別開發(fā)者指定的待翻譯內容,獲得足夠 的翻譯所需的上下文信息,并且通過原地編輯來翻譯該內容;此外,在翻譯 過程中,翻譯結果被直接顯示在網頁上,因此翻譯者能夠獲得即時的反饋信 息并且隨時調整網頁布局。這有助于翻譯者提高翻譯質量并且滿足網頁布局 的要求。
(3) 測試者可以原地報告翻譯錯誤。與翻譯錯誤有關的地區(qū)信息和翻譯信 息(例如原始內容和翻譯后內容)被自動收集和提交;當開發(fā)者和翻譯者再次打 開網頁時,這些信息被自動地附加到所呈現(xiàn)的網頁的相應位置。這使得開發(fā) 者和翻譯者能夠容易地定位翻譯錯誤并且獲得其上下文信息。
(4) 整個國際化過程可以在瀏覽器中在線完成,不需要在不同的角色之間 進行切換,并且可以在瀏覽器中直接訪問上下文信息。這提高了國際化的效 率和靈活性。
通過結合附圖對本發(fā)明的實施例進行詳細描述,本發(fā)明的上述和其它目 的、特征、優(yōu)點將會變得更加清楚,在附圖中
圖1是示出根據(jù)本發(fā)明實施例的創(chuàng)建國際化Web應用的方法的流程圖; 圖2是示出圖1所示的步驟S106的變型的流程圖;圖3是示出根據(jù)本發(fā)明另 一 實施例的創(chuàng)建國際化Web應用的方法的流程 圖;以及
圖4是示出根據(jù)本發(fā)明實施例的創(chuàng)建國際化Web應用的系統(tǒng)的框圖。
具體實施例方式
下面將參照附圖來詳細描述本發(fā)明的實施例,在附圖中,相同的參考標 號自始至終表示相同的元件。應當理解這里描述的實施例僅僅是說明性的, 而不應被解釋為限制本發(fā)明的范圍。
本發(fā)明使用包括超文本標記語言(HTML)、文檔對象模型(DOM)和 Javascript的標準Web技術來提供創(chuàng)建國際化Web應用的平臺,從而優(yōu)化國 際化過程。
DOM是W3C(萬維網聯(lián)盟)定義的標準。在加載要國際化的HTML網頁 時,瀏覽器自動產生該網頁的DOM樹,該DOM樹的節(jié)點包括HTML網頁 中的各種可視內容,例如文本、貨幣、日期、或人名等。由于瀏覽器為HTML 網頁產生DOM樹的方法是本領域公知的,因此為簡單起見而在這里省略其 詳細描述??紤]到DOM樹的這一特點,本發(fā)明利用DOM樹來在創(chuàng)建國際化 Web應用。
下面,將參照圖1來描述根據(jù)本發(fā)明實施例的用于創(chuàng)建國際化Web應用 的方法。圖1示出了該方法的流程圖。在本發(fā)明中,優(yōu)選地利用Javascript 庫來形成根據(jù)本發(fā)明實施例的客戶端,該客戶端在被激活時執(zhí)行根據(jù)本發(fā)明 實施例的用于創(chuàng)建國際化Web應用的方法。例如,優(yōu)選地,可以將所述 Javascript庫直接嵌在瀏覽器程序中,從而在該瀏覽器被激活時,所述客戶端 執(zhí)行根據(jù)本發(fā)明實施例的方法。可替換地,也可以將所述Javascript庫作為插 件安裝到公知的瀏覽器上,并且當用戶(例如,開發(fā)者、翻譯者或測試者)激活 該插件時,所述客戶端執(zhí)行根據(jù)本發(fā)明實施例的方法。
如圖1所示,當開發(fā)者通過激活集成了所述Javascript庫的瀏覽器而打開 一網頁時,在步驟S101,響應于開發(fā)者的這一激活操作而從服務器讀取Web 應用的網頁并將其加載和顯示在瀏覽器上,瀏覽器自動為該網頁產生DOM 樹。在步驟S102中,掃描該網頁的DOM樹以找出所加載的網頁中的所有可 能需要翻譯的內容,在與這些內容對應的節(jié)點上添加事件句柄(handler)以支持 開發(fā)者的原地標注(即,原地選擇和注釋(annotation)添加),并且在步驟SI03中在所顯示的網頁上可視地標記所找出的可能需要翻譯的內容。如上所述, 可能需要翻譯的內容包括網頁中的文本、貨幣、日期和人名等。例如,可以
根據(jù)DOM樹的節(jié)點的元素類型(Element Type)來確定各個節(jié)點對應的內容的 類型,并且將文本、貨幣、日期或人名、表輸入等可視內容確定為可能需要 翻譯的內容。也可以采用其它公知的方法來進行掃描。由于這些掃描和添加 事件句柄的方法是本領域公知的,因此為簡單起見而在這里省略其描述。此 外,可以通過將所述內容加亮或改變其顏色而可視地標記該內容,使得開發(fā) 者容易注意到該內容。
由于網頁上所有可能需要翻譯的內容都已經被可視地標記出來,因此, 開發(fā)者可以容易地查看這些內容,并且通過在瀏覽器上原地進行標注而從中 選擇待翻譯內容。例如,開發(fā)者可以直接在網頁上點擊所希望的內容,添加 到與該內容對應的節(jié)點上的事件句柄能夠響應于開發(fā)者在該節(jié)點上的操作而 向開發(fā)者呈現(xiàn)例如一頁面,使得開發(fā)者能夠通過該頁面確認所做的選擇或者 添加與所選擇的待翻i奪內容有關的注釋。所添加的注釋可以指定相關內容的 消息id、諸如文本、貨幣、日期或人名等的數(shù)據(jù)類型、或者其它信息。
作為開發(fā)者確認所述選擇或添加注釋的結果,所選擇的待翻譯內容被可 視地標記出來。在步驟S104中,響應于開發(fā)者通過所述標注而在所述可能需 要翻譯的內容中進行的直接選擇,自動地收集與所選擇的待翻譯內容有關的 信息,例如該內容的位置、類型以及具體內容等,并且通過調用服務器的定 位服務而將所收集的信息存儲到翻譯資源庫中??梢岳肁jax技術或其它公 知技術來將所收集的信息異步存儲到翻譯資源庫中。所述定位服務是用于在 定位要翻譯的內容時調用翻譯資源庫的接口 。
接下來,在步驟S105中,從翻譯資源庫讀取所收集的信息,根據(jù)該信息 而從所述網頁中提取開發(fā)者選擇的待翻譯內容,即,使待翻譯內容與網頁的 代碼相分離,并且存儲所提取的待翻譯內容。優(yōu)選地,將待翻譯內容保存在 用于相應語言的屬性文件(第一屬性文件)中,例如,如果待翻譯內容為中文內 容,則可以將其存儲在被命名為例如"properties.cn,,的屬性文件中;還從所收 集的信息中提取指示待翻譯內容在網頁中的位置的位置信息,并且將該位置 信息存儲在與所述屬性文件相關聯(lián)的位置文件中。此外,還在所述網頁的代 碼中添加用于使得在加載該網頁時根據(jù)系統(tǒng)預設或者用戶選擇的地區(qū)而自動 加載用于該地區(qū)的屬性文件的代碼,使得向用戶呈現(xiàn)具有采用與該地區(qū)相對
9應的語言的網頁。
隨后,在步驟S106中,當翻譯者利用傳統(tǒng)方法獲取第一屬性文件并且人 工地或者使用諸如機器翻譯的其它公知方法翻譯了存儲在其中的待翻譯內容 之后,存儲由此獲得的翻譯后內容。優(yōu)選地,將翻譯后內容保存在對應語言 的屬性文件(第二屬性文件)中。例如,如果翻譯后內容為英文內容,則可以將 所提取的翻譯后內容保存在被命名為例如"properties.en,,的屬性文件中。然 后,該網頁的國際化過程結束。
為了使網頁可用于多個地區(qū),翻譯者可為每個地區(qū)創(chuàng)建一個屬性文件, 并且將與該地區(qū)對應的語言的翻譯后內容存儲在該屬性文件中,此外,還存 儲與該屬性文件相關聯(lián)的翻譯后內容的位置信息,使得當不同地區(qū)的用戶打 開網頁時,如上所述添加在網頁中的代碼使得瀏覽器根據(jù)該用戶的地區(qū)而自 動選擇和加載對應語言的屬性文件,從而向用戶呈現(xiàn)采用其語言的網頁。
如上所述,在定位待翻譯內容的過程中,網頁中所有可能需要翻譯的內 容都被可視地標記在網頁上,開發(fā)者可以在網頁上以直接點擊或者添加注釋 等標注方式原地選擇待翻譯內容,使得可以容易地確定所有待翻譯內容而不 會產生遺漏。
然而,在上述步驟S106中,當翻譯者利用傳統(tǒng)方法翻譯存儲第一屬性文 件中的待翻譯內容時,仍然存在翻譯者無法獲得足夠的上下文信息以及無法 獲得即時可視反饋的問題。為此,可以采用圖2所示的流程來改進圖1所示 的步驟S106。
如圖2所示,當翻譯者通過激活集成了根據(jù)本發(fā)明實施例的客戶端的瀏 覽器而再次打開該網頁時,在步驟S1061中,響應于該激活操作而讀取該網 頁的代碼,并且根據(jù)系統(tǒng)預設或翻譯者選擇的地區(qū)而讀取屬性文件庫中的對 應屬性文件(以下假設為第一屬性文件)和位置文件,然后將該網頁加載到瀏覽 器上,瀏覽器自動產生該網頁的DOM樹。在步驟S1062中,根據(jù)存儲在第 一屬性文件中的待翻譯內容以及存儲在位置文件中的待翻譯內容的位置信息 來在所顯示的網頁上可視地標記所述待翻譯內容;例如,可以掃描所述DOM 樹,并且根據(jù)存儲在屬性文件中的待翻譯內容以及存儲在位置文件中的待翻 譯內容的位置信息來找到和可視地標記所述待翻譯內容;此外,還在DOM 樹的相應節(jié)點上添加能夠響應翻譯者在該節(jié)點上的操作的事件句柄以支持翻 譯者的原地編輯。由于待翻譯內容已經被明顯地標記出來,因此翻譯者能夠容易地在網頁 中找到這些內容。然后,翻譯者通過例如直接點擊這些內容而原地編輯待翻 譯內容以將其替換成與當前地區(qū)對應的另一語言的內容。如上所述,這一原
地編輯是通過所添加的事件句柄的響應來實現(xiàn)的。在完成翻譯之后,網頁上 的原始語言的待翻譯內容被替換為與系統(tǒng)預設或翻譯者選擇的地區(qū)相對應的 語言的翻譯后內容。
在步驟S1063'中,響應于翻譯者在瀏覽器上進行的原地翻譯,自動地收 集與翻譯后內容有關的信息,例如翻譯后內容的位置、類型、和具體內容等, 并且利用例如Ajax技術而將所收集的信息通過翻譯服務保存到翻譯資源庫 中。所述翻譯服務是用于在翻譯時調用翻譯資源庫的接口。
接下來,在步驟S1064中,從翻譯資源庫讀取所收集的這一信息,根據(jù) 該信息而從所述網頁中提取對應的翻譯后內容,并且將所提取的翻譯后內容 保存在用于相應語言的屬性文件(第二屬性文件)中;還從所收集的信息中提取 指示翻譯后內容在網頁中的位置的位置信息,并且將該位置信息存儲在與第 二屬性文件相關聯(lián)的位置文件中。所述第二屬性文件和位置文件被存儲在屬 性文件庫中。然后,該國際化過程結束。
翻譯者可以利用上述方法而為每個地區(qū)創(chuàng)建一個屬性文件并將相應語言 的翻譯后內容存儲在該屬性文件中,此外,還保存與該屬性文件相關聯(lián)的翻 譯后內容的位置信息。當加載該網頁時,添加在網頁中的代碼使得瀏覽器根 據(jù)用戶選#^的地區(qū)而自動加載對應語言的屬性文件,使得向用戶呈現(xiàn)具有采 用與該地區(qū)相對應的語言的網頁。
可以看到,由于翻譯者在網頁上原地進行翻譯,并且翻譯后內容被實時 地顯示在網頁上,因此翻譯者在翻譯時能夠獲得足夠的上下文信息從而提高
翻譯質量,并且能夠獲得即時的可視反饋從而避免由于文本長度變化導致的 網頁布局的不良改變。
如上所述,通過將網頁中的待翻譯內容翻譯成多種語言的內容并且將翻 譯后內容存儲在對應的屬性文件中,使得當打開網頁時自動加載與用戶的地 區(qū)相對應的屬性文件,從而實現(xiàn)了網頁的國際化。然而,為了避免在翻譯后 內容中存在錯誤,在國際化過程中,通常還需要由測試者對翻譯后內容進行 測試以找出其中的翻譯錯誤。傳統(tǒng)上,測試者檢查翻譯后內容,并且在發(fā)現(xiàn) 翻譯錯誤之后手動地輸入與該翻譯錯誤有關的信息,因而效率較低。為了解決這一問題,可以釆用根據(jù)本發(fā)明另一實施例的用于創(chuàng)建國際化網頁的方法。
圖3示出了根據(jù)本發(fā)明另一實施例的用于創(chuàng)建國際化網頁的方法的流程 圖。圖3中的步驟S301至S309分別與圖1所示的步驟S101至S105以及圖 2所示的步驟S1061至S1064相同,因此為簡單起見而省略對相同步驟的描 述。
如圖3所示,當測試者通過激活集成了根據(jù)本發(fā)明實施例的客戶端的瀏 覽器而打開所述網頁時,在步驟S310,響應于該激活操作而讀取所述網頁的 代碼,并且根據(jù)系統(tǒng)預設或測試者選擇的地區(qū)而讀取屬性文件庫中與該地區(qū) 相對應的屬性文件(以下々li殳為第二屬性文件)和位置文件,由此在瀏覽器上加 載翻譯后的網頁,瀏覽器自動產生該網頁的DOM樹。在步驟S311中,根據(jù) 第二屬性文件中的翻譯后內容以及位置文件中的位置信息而在網頁上可視地 標記翻譯后內容;例如,可以掃描所述DOM樹,并且根據(jù)第二屬性文件中 的翻譯后內容以及位置文件中的位置信息來找到和可視地標記所述翻譯后內 容;此外,還在DOM樹的相應節(jié)點上添加能夠響應用戶(例如,測試者)在該 節(jié)點上的操作(例如,直接點擊)的事件句柄以支持測試者的原地報告。此時, 所顯示的網頁是適合于所述地區(qū)的已經被國際化的網頁。
測試者檢查所述網頁中被可視地標記的內容。當發(fā)現(xiàn)諸如錯誤拼寫的詞 或錯誤翻譯的句子之類的翻譯錯誤時,測試者可以通過例如直接點擊該內容 或者在該內容上添加評論而指出該翻譯錯誤。響應于測試者的這一輸入,在 步驟S312中,自動地收集與該輸入所指出的翻譯錯誤有關的上下文信息,例 如所使用的瀏覽器的類型和版本、當前地區(qū)、所添加的評論、該翻譯錯誤的 位置、所對應的翻譯后內容和原始內容等,并且利用例如Ajax技術而通過測 試服務將所收集的信息作為錯誤文件保存到錯誤庫中。然后,該國際化過程 結束。所述測試服務是用于在測試時調用錯誤庫的接口 。
在測試完成之后,當開發(fā)者或翻譯者通過激活瀏覽器而再次加載所述網 頁時,除了根據(jù)當前地區(qū)讀取網頁代碼和對應屬性文件以加載采用相應語言 的網頁以外,還從^l晉誤庫讀取錯誤文件,并且通過掃描該網頁的DOM樹而 根據(jù)其中的信息在網頁上可視地標記所報告的翻譯錯誤,使得開發(fā)者或翻譯 者能夠容易地注意到該翻譯錯誤。開發(fā)者和翻譯者可以通過直接點擊該翻譯 錯誤以獲得關于該翻譯錯誤的更多信息,例如該翻譯錯誤對應的翻譯前后的 內容、測試者添加的評論等??梢酝ㄟ^添加如上所述的能夠響應用戶操作的事件句柄或者利用其它公知技術來實現(xiàn)上述功能。
可以看到,由于在發(fā)現(xiàn)翻i奪錯誤時自動地收集與該翻譯錯誤有關的信息
而不需要測試者手動輸入,并且開發(fā)者和翻譯者能夠通過所收集的信息而容 易地再現(xiàn)該翻譯錯誤,因此提高了國際化效率。
下面,將參照圖4來描述根據(jù)本發(fā)明實施例的創(chuàng)建國際化Web應用的系 統(tǒng)。圖4示出了該系統(tǒng)的框圖。
如圖4所示,根據(jù)本發(fā)明實施例的創(chuàng)建國際化Web應用的系統(tǒng)包括客戶 端401和服務器402??蛻舳?01包括加載單元4011、掃描單元4012和收集 單元4013??蛻舳?01可以用硬件、軟件、或者它們的組合來實現(xiàn)。如上所 述,在本發(fā)明中,優(yōu)選地利用Javascript庫來實現(xiàn)該客戶端401。例如,優(yōu)選 地,可以將實現(xiàn)客戶端401的功能的Javascript庫直接嵌在瀏覽器程序中,從 而在該瀏覽器被激活的同時激活客戶端401,如稍后描述的那樣。可替換地, 也可以將實現(xiàn)客戶端401的功能的Javascript庫作為插件安裝到公知的瀏覽器 上,并且根據(jù)用戶(例如,開發(fā)者、翻譯者或測試者)的操作而激活該客戶端 401。
客戶端401與服務器402交互。服務器402包括提取單元4021、翻譯資 源庫4022、錯誤(bug)庫4023、 Web應用4024、屬性文件庫4025、定位服務 4026、翻譯服務4027和測試服務4028。定位服務4026和翻譯服務4027是 收集單元4013調用翻譯資源庫4022的接口 ,測試服務4028是收集單元4013 調用錯誤庫4023的接口 。翻譯資源庫4022用于存儲由收集單元4013收集的 信息。提取單元4021用于根據(jù)存儲在翻譯資源庫4022中的信息而從Web應 用4024的網頁中提取待翻譯內容及其位置信息,并且將所述內容保存在相應 的屬性文件中。提取單元4021還響應于用戶對于待翻譯內容的翻譯而將翻譯 后內容存儲在相應的屬性文件中。
屬性文件庫4025用于存儲所述屬性文件和位置信息。錯誤庫4023用于 存儲與測試時發(fā)現(xiàn)的翻譯錯誤有關的信息。
下面將詳細描述加載單元4011、掃描單元4012和收集單元4013。首先, 將結合定位網頁中的待翻譯內容這一階段來描述所述單元。
當開發(fā)者通過激活集成了根據(jù)本發(fā)明實施例的客戶端401的瀏覽器而打 開網頁時,客戶端401被同時激活。加載單元4011響應于開發(fā)者激活瀏覽器 的操作而從服務器402讀取Web應用4024的網頁并將其加載和顯示在瀏覽器上。此時,瀏覽器自動產生所加載的網頁的DOM樹,該DOM樹的某些節(jié) 點包括所加載的網頁的可視內容,例如文本等。
掃描單元4012掃描該DOM樹以找出所加載的網頁中的所有可能需要翻 譯的內容,并且在與這些內容對應的節(jié)點上添加事件句柄以支持開發(fā)者的原 地標記(即,原地選擇和注釋添加)。可能需要翻譯的內容包括網頁中的文本、 貨幣、日期和人名等。例如,掃描單元4012可以根據(jù)DOM樹的節(jié)點的元素 類型(ElementType)來確定各個節(jié)點對應的內容的類型,并且將文本、貨幣、 日期或人名、表輸入等可視內容確定為可能需要翻譯的內容。由于掃描和添 加事件句柄的方法是本領域公知的,因此為簡單起見而在這里省略其描述。 在完成該掃描之后,掃描單元4012在所顯示的網頁上可視地標記所找出的可 能需要翻譯的內容。例如,可以通過將所述內容加亮或改變其顏色而可視地 標記該內容,使得開發(fā)者容易注意到該內容。
開發(fā)者查看網頁上所有可能需要翻譯的內容,并且通過在網頁上原地進 行標注來從中選擇實際需要翻譯的內容,即待翻譯內容。例如,開發(fā)者可以 用鼠標直接在網頁上點擊所希望的內容,此時,添加到與該內容對應的節(jié)點 上的事件句柄響應于這一原地選摘,操作(即,用戶在該節(jié)點上的操作)而例如向 開發(fā)者呈現(xiàn)一頁面,以使得開發(fā)者能夠通過該頁面確認所做的選擇或者添加 與所選擇的待翻譯內容有關的注釋。在開發(fā)者進行了標注(即,確認了所述選 擇或添加了注釋)之后,掃描單元4012將所選擇的待翻譯內容在網頁上可視 ;也才示"i己出來。
收集單元4013響應于開發(fā)者通過標注而在所述可能需要翻譯的內容中 進行的直接選擇來自動地收集與所選擇的待翻譯內容有關的信息,例如該待 翻譯內容的位置、類型和具體內容、所添加的注釋等,并且通過調用服務器 402的定位服務4026而將所收集的信息存儲到服務器402的翻譯資源庫4022 中。例如,收集單元4013可以利用Ajax技術來與后端通信,使得將所收集 的信息異步地存儲到翻譯資源庫4022中。
如上所述,服務器402的提取單元4021從翻譯資源庫4022讀取所收集 的信息,根據(jù)該信息而從所述網頁中提取開發(fā)者選擇的待翻譯內容,即,使 待翻譯內容與網頁的代碼相分離,并且優(yōu)選地將所提取的待翻譯內容保存在 用于相應語言的原始屬性文件(以下稱為第一屬性文件)中。提取單元4021還 從所收集的信息中提取指示待翻譯內容在原始網頁中的位置的位置信息,并且將該位置信息存儲在與屬性文件相關聯(lián)的位置文件中。所述屬性文件和位
置文件被存儲在屬性文件庫4025中。所述屬性文件的格式以及提取單元4021 提取待翻譯內容和其位置信息的方法是本領域公知的,為簡單起見,在這里 省略其描述。此外,提取單元4021還在所述網頁的代碼中添加用于使得在加 載該網頁時根據(jù)系統(tǒng)預設或者用戶選擇的地區(qū)而自動加載用于該地區(qū)的屬性 文件的代碼。當如上所述翻譯者利用傳統(tǒng)方法獲取第一屬性文件并且人工地 或者使用諸如機器翻譯的其它公知方法翻譯了存儲在其中的待翻譯內容之 后,提取單元4021還存儲由此獲得的翻譯后內容,例如,優(yōu)選地將其存儲在 用于對應語言的第二屬性文件中。
然而,為了使翻譯者在翻譯時可以獲得待翻譯內容的上下文信息以及關 于頁面布局的即時反饋,加載單元4011、掃描單元4012和收集單元4013在 翻譯者進行翻譯時優(yōu)選地執(zhí)行以下操作。
當翻譯者通過激活集成了根據(jù)本發(fā)明實施例的客戶端401的瀏覽器而打 開所述網頁時,加載單元4011讀取該網頁的代碼,并且根據(jù)系統(tǒng)預設或翻譯 者選擇的地區(qū)而讀取屬性文件庫4025中的對應屬性文件(以下假設為第一屬 性文件)和位置文件,然后將該網頁加載到瀏覽器上,瀏覽器自動產生該網頁 的DOM樹。掃描單元4012根據(jù)存儲在第一屬性文件中的待翻譯內容以及存 儲在位置文件中的待翻譯內容的位置信息來在所顯示的網頁上可視地標記所 述待翻譯內容;例如,掃描單元4012可以掃描所述DOM樹,才艮據(jù)存儲在屬 性文件中的待翻譯內容以及存儲在位置文件中的待翻譯內容的位置信息來找 出和可視地標記所述待翻譯內容;此外,還在DOM樹的相應節(jié)點上添加能 夠響應翻譯者在該節(jié)點上的操作(例如,點擊)的事件句柄以支持翻譯者的原地 編輯。
由于待翻譯內容被明顯地標記出來,因此翻譯者能夠容易地在網頁中找 到這些內容。然后,翻譯者通過例如直接點擊這些內容而在原地編輯待翻譯 內容以將其替換成與當前地區(qū)相對應的另一語言的內容。如上所述,這一原
地編輯是通過所添加的事件句柄的響應來實現(xiàn)的。在翻譯期間,待翻譯的內 容被實時地顯示在網頁上,因此翻譯者可以獲得足夠的上下文信息。此外, 由于翻譯后內容也被實時地顯示在網頁上,因此翻譯者還可以即時地獲得關 于翻譯前后的內容的長度變化等的可視反饋,從而可以根據(jù)這一反饋而隨時 調整頁面的布局。在完成翻譯之后,網頁上的原始語言的 翻譯內容被替換為與系統(tǒng)預設或翻譯者選擇的地區(qū)相對應的語言的翻譯后內容。
收集單元4013響應于翻譯者在瀏覽器上進行的原地翻譯而自動地收集 與翻譯后內容有關的信息,例如翻譯后內容的位置、類型、和具體內容等, 并且利用例如Ajax技術而將所收集的信息通過翻i奪^務4027保存到翻譯資 源庫4022中。
類似地,提取單元4021根據(jù)所收集的信息而從所述網頁中提取翻譯后內 容,并且優(yōu)選地將其保存在用于相應語言的屬性文件(以下稱為第二屬性文件) 中。提取單元4021還從所收集的信息中提取指示翻譯后內容在國際化網頁中 的位置的位置信息,并且將該位置信息存儲在與屬性文件相關聯(lián)的位置文件 中。所述屬性文件和位置文件被存儲在屬性文件庫4025中。
如上所述,為了能夠減少翻譯錯誤,優(yōu)選地對翻譯后內容進行測試。加 載單元4011、掃描單元4012和收集單元4013在測試階段執(zhí)行以下操作。
當測試者通過激活集成了根據(jù)本發(fā)明實施例的客戶端401的瀏覽器而打 開所述網頁時,加載單元4011讀取該網頁的代碼,并且根據(jù)系統(tǒng)預設或測試 者選擇的地區(qū)而讀取屬性文件庫4025中與該地區(qū)相對應的屬性文件(以下有支 設為第二屬性文件)和位置文件,由此在瀏覽器上加載翻譯后的網頁。此時, 瀏覽器自動產生該網頁的DOM樹。掃描單元4012根據(jù)第二屬性文件中的翻 "^f后內容以及位置文件中的位置信息來在網頁上可^L地標記翻譯后內容;例 如,掃描單元4012可以掃描所述DOM樹,并且根據(jù)第二屬性文件中的翻i奪 后內容以及位置文件中的位置信息來找到和可視地標記所述翻譯后內容;此 外,還在DOM樹的相應節(jié)點上添加能夠響應測試者在該節(jié)點上的操作的事 件句柄以支持測試者對翻譯錯誤的原地報告。
由于翻譯后內容已經被明顯地標記出來,因此測試者能夠容易地在網頁 中找到和檢查這些內容。當測試者發(fā)現(xiàn)翻譯錯誤(例如錯誤拼寫的詞或錯誤翻 譯的句子)時,測試者可以通過例如直接點擊該內容或者在該內容上添加評論 而指出該翻譯錯誤。此時,收集單元4013自動地收集與測試者所指出的翻譯 錯誤有關的上下文信息,例如所使用的瀏覽器的類型和版本、當前地區(qū)、所 添加的評論、該翻譯錯誤的位置、所對應的翻譯后內容和原始內容等,并且 利用例如Ajax技術而通過測試服務4028將所收集的信息作為錯誤文件保存 到錯誤庫4023中。
在測試完成之后,當開發(fā)者或翻譯者通過激活瀏覽器而再次加載所述網頁時,由于此時錯誤庫4023中存在報告翻譯錯誤的錯誤文件,因此除了根據(jù) 當前地區(qū)讀取網頁代碼和對應屬性文件以加載相應的國際化網頁以外,掃描 單元4012還從錯誤庫4023讀取錯誤文件,并且通過掃描該網頁的DOM樹 而根據(jù)其中記載的信息在網頁上定位并且可視地標記測試者報告的翻譯錯 誤,使得開發(fā)者或翻譯者能夠容易地注意到該翻譯錯誤。開發(fā)者和翻譯者可 以通過直接在網頁上點擊所標記的翻譯錯誤以獲得關于該翻譯錯誤的更多信 息,例如測試者添加的評論等,這可以通過添加如上所述的能夠響應用戶操 作的事件句柄或者其它公知技術來實現(xiàn)。
應當注意,盡管在上文中分別使用翻譯資源庫和屬性文件庫來存儲所收 集的信息以及屬性文件和位置文件,但這不是限制性的,這些信息和文件的 存儲位置也可以根據(jù)需要而被單獨或共同存儲在任何位置上。此外,盡管在 上文中將根據(jù)本發(fā)明實施例的系統(tǒng)描述為采用客戶端和服務器的架構,但這 僅僅是示例性的,可以利用單機架構來實現(xiàn)所述系統(tǒng)。
還應當認識到,當測試者對翻譯后內容進行測試時,掃描單元4012可以 只加載翻譯后內容,也可以同時加載翻譯后內容和與該翻譯后內容對應的原 始內容,使得測試者能夠通過比較而更容易地發(fā)現(xiàn)翻譯錯誤。
在上文中描述了根據(jù)本發(fā)明實施例的創(chuàng)建國際化網頁的方法和系統(tǒng)。利 用所述方法和系統(tǒng),開發(fā)者可以在網頁上原地選擇待翻譯內容,從而避免出 現(xiàn)遺漏;翻譯者在翻譯時可以獲得待翻譯內容的上下文信息以及關于頁面布 局的即時反饋,從而提高翻譯質量并且避免由于翻譯導致的布局的不利改變; 測試者可以在測試時原地報告翻譯錯誤而不需要手動輸入大量信息,從而提 高了測試效率。并且,通過將開發(fā)者、翻譯者和測試者更緊密地聯(lián)系起來并 且在這三個角色之間共享盡可能多的上下文信息,根據(jù)本發(fā)明實施例的創(chuàng)建 國際化Web應用的系統(tǒng)和方法能夠顯著提高國際化效率。此外,可以認識到, 通過DOM處理,本發(fā)明的創(chuàng)建國際化網頁的系統(tǒng)和方法也能夠應用于動態(tài) 生成的網頁的國際化。
本發(fā)明的替換實施例還可以包括計算機可讀介質上的計算機可讀代碼。 計算機可讀介質可以包括計算機可讀記錄介質和計算機可讀傳輸介質。計算 機可讀記錄介質是能夠存儲隨后可由計算機系統(tǒng)讀取的數(shù)據(jù)的任何數(shù)據(jù)存儲 裝置。計算機可讀記錄介質的示例包括諸如只讀存儲器(ROM)、隨機存取存 儲器(RAM)、 CD-ROM、磁帶、軟盤和硬盤的磁存儲介質以及諸如CD(致密盤)和DVD(數(shù)字多用途盤)的光存儲裝置。也可以將計算機可讀記錄介質分布 在網絡耦接的計算機系統(tǒng)上,使得以分布式方式存儲和執(zhí)行所述計算機可讀 代碼。計算機可讀傳輸介質可以傳輸載波或信號(例如通過因特網進行的有線 或無線數(shù)據(jù)傳輸)。此外,本發(fā)明所屬領域的程序員可以容易地解釋用于實現(xiàn) 本發(fā)明的功能程序、代碼、和代碼,歐。
盡管已經示出和描述了本發(fā)明的特定實施例,本領域技術人員應當理解, 在不背離權利要求及其等價物中限定的本發(fā)明的范圍和精神的情況下,可以 對這些實施例做出各種形式和細節(jié)上的變化。
權利要求
1.一種創(chuàng)建國際化網絡應用的方法,包括響應于用戶激活瀏覽器的操作而將網頁加載到瀏覽器中;掃描該網頁的文檔對象模型DOM樹以找出該網頁中所有可能需要翻譯的內容,并在瀏覽器上可視地標記所述內容;響應于用戶在所述可能需要翻譯的內容中進行的直接選擇而收集與該選擇對應的待翻譯內容有關的信息;以及根據(jù)所收集的信息而從網頁中提取并且存儲待翻譯內容,以及存儲與所述待翻譯內容對應的翻譯后內容。
2. 如權利要求l所述的方法,其中,將所述待翻譯內容存儲在第一屬性 文件中,將所述翻譯后內容存^l在第二屬性文件中。
3. 如權利要求2所述的方法,其中,除了提取所述待翻譯內容之外,還 提取待翻譯內容的位置信息。
4. 如權利要求3所述的方法,其中,按照以下方式獲得和存儲所述翻譯 后內容響應于用戶激活瀏覽器的操作而利用第一屬性文件將網頁加載到瀏覽器中;根據(jù)第一屬性文件中的待翻譯內容及其位置信息而在瀏覽器上可視地標記待翻譯內容;響應于用戶在瀏覽器上的原地翻譯而收集與通過該翻譯獲得的翻譯后內 容有關的信息;以及根據(jù)所收集的信息而從網頁中提取翻譯后內容及其位置信息,并將該翻 譯后內容存儲在第二屬性文件中。
5. 如權利要求4所述的方法,還包括以下步驟響應于用戶激活瀏覽器的操作而利用第二屬性文件將網頁加載到瀏覽器中;根據(jù)第二屬性文件中的翻譯后內容及其位置信息而在瀏覽器上可視地標記所述翻i斧后內容;以及收集與用戶的輸入所指示的翻譯^l普誤有關的上下文信息,并將該上下文 信息存儲在錯誤文件中。
6. 如權利要求5所述的方法,其中,除了所述翻譯后內容以外,還在瀏 覽器上顯示該翻譯后內容的原始內容。
7. 如權利要求5所述的方法,其中,所述上下文信息包括所使用的瀏覽 器及其版本、當前地區(qū)、用戶添加的評論、所述翻譯錯誤對應的翻譯后內容 和其原始內容中的一個或多個。
8. 如權利要求1至5之一所述的方法,其中,通過在DOM樹的節(jié)點上 添加能夠響應用戶操作的事件句柄來響應用戶在該節(jié)點上的操作。
9. 如權利要求l所述的方法,其中,用戶通過在所顯示的網頁上原地進 行標注來從可能需要翻譯的內容中選擇待翻譯內容。
10. 如權利要求l所述的方法,其中,所述與待翻譯內容有關的信息包 括待翻譯內容的位置、類型、和具體內容中的一個或多個。
11. 一種創(chuàng)建國際化網絡應用的系統(tǒng),包括加載單元,響應于用戶激活瀏覽器的才喿作而將網頁加載到瀏覽器中;掃描單元,掃描該網頁的文檔對象模型DOM樹以找出該網頁中所有可 能需要翻譯的內容,并且在瀏覽器上可視地標記所述內容;收集單元,響應于用戶在所述可能需要翻譯的內容中進行的直接選擇而 收集與該選擇對應的待翻譯內容有關的信息;和提取單元,根據(jù)所收集的信息而從網頁中提取并存儲待翻譯內容,以及 存儲與所述待翻譯內容對應的翻譯后內容。
12. 如權利要求11所述的系統(tǒng),其中,提取單元將所述待翻譯內容存儲 在第一屬性文件中,并且將所述翻譯后內容存儲在第二屬性文件中。
13. 如權利要求12所述的系統(tǒng),其中,除了提取所述待翻譯內容之外, 提取單元還提取待翻譯內容的位置信息。
14. 如權利要求13所述的系統(tǒng),其中,按照以下方式獲得和存儲所述翻 譯后內容加載單元響應于用戶激活瀏覽器的操作而利用第一屬性文件加載所述網 頁,掃描單元根據(jù)第一屬性文件中的待翻譯內容及其位置信息而在瀏覽器上 可視地標記待翻譯內容,收集單元響應于用戶在瀏覽器上的原地翻譯而收集 與通過該翻譯獲得的翻譯后內容有關的信息,提取單元根據(jù)所收集的信息而 從網頁中提取翻譯后內容及其位置信息,并將該翻譯后內容存儲在第二屬性 文件中。
15. 如權利要求11所述的系統(tǒng),其中,當加載單元響應于用戶激活瀏覽器的操作而利用第二屬性文件加載所述 網頁時,掃描單元根據(jù)第二屬性文件中的翻譯后內容及其位置信息而在瀏覽 器上可視地標記所述翻譯后內容,收集單元收集與用戶的輸入所指示的翻譯 錯誤有關的上下文信息,并將該上下文信息存儲在錯誤文件中。
16. 如權利要求15所述的系統(tǒng),其中,除了所述翻譯后內容以外,掃描單元還在瀏覽器上可視地顯示與該翻譯后內容的原始內容。
17. 如權利要求15所述的系統(tǒng),其中,所述上下文信息包括所使用的瀏 覽器及其版本、當前地區(qū)、用戶添加的評論、所述翻譯錯誤對應的翻譯后內 容和其原始內容中的一個或多個。
18. 如權利要求11至15之一所述的方法,其中,所述掃描單元通過在 DOM樹的節(jié)點上添加能夠響應用戶操作的事件句柄來響應用戶在該節(jié)點上 的操作。
19. 如權利要求11所述的系統(tǒng),其中,用戶通過在所顯示的網頁上進行 標注來從可能需要翻譯的內容中選擇待翻譯內容。
20. 如權利要求11所述的系統(tǒng),其中,所述與待翻譯內容有關的信息包 括待翻譯內容的位置、類型、和具體內容中的一個或多個。
全文摘要
提供了一種創(chuàng)建國際化網絡應用的方法和系統(tǒng)。所述方法包括響應于用戶激活瀏覽器的操作而將網頁加載到瀏覽器中;掃描該網頁的文檔對象模型DOM樹以找出該網頁中所有可能需要翻譯的內容,并在瀏覽器上可視地標記所述內容;響應于用戶在所述可能需要翻譯的內容中進行的直接選擇而收集與該選擇對應的待翻譯內容有關的信息;以及根據(jù)所收集的信息而從網頁中提取并且存儲待翻譯內容,以及存儲與所述待翻譯內容對應的翻譯后內容。所述方法和系統(tǒng)通過使開發(fā)者、翻譯者和測試者能夠在頁面中定位待翻譯內容、翻譯和報告翻譯錯誤而提高了網頁國際化效率。
文檔編號G06F17/30GK101615181SQ200810131759
公開日2009年12月30日 申請日期2008年6月27日 優(yōu)先權日2008年6月27日
發(fā)明者立 易, 可 朱, 李文兵, 毛新生 申請人:國際商業(yè)機器公司