專利名稱:利用顯示替換的web翻譯的制作方法
利用顯示替換的web翻譯
背景技術:
本說明書涉及對標記語言文檔的翻譯。總的來說,標記語言文檔是包含文本和對該文本的注釋的電子文檔。注釋一般包括結構信息,并且描述文本應當如何被格式化并且向用戶顯示。標記語言文檔的示例包括超文本標記語言(HTML)文檔、可擴展標記語言(XML)文檔以及半可擴展標記語言(SEML) 文檔。對標記語言文檔的翻譯服務典型地提供對文檔的靜態(tài)翻譯。將文檔的標識符(例如,統(tǒng)一資源定位符(URL))發(fā)送給翻譯服務。翻譯服務檢索文檔、翻譯文檔、并且當文檔在其被檢索時出現(xiàn)時展現(xiàn)文檔的翻譯。
發(fā)明內容
本說明書描述了涉及用顯示替換對標記語言文檔的翻譯的技術。這些技術可以在本說明書的末尾和權利要求書中列出的新穎實施例中實現(xiàn)。在本說明書中描述的主題的所列出的實施例和其他實施例可以被實現(xiàn),以實現(xiàn)以下優(yōu)勢中的一個或多個。存儲在服務器上的標記語言文檔可以在客戶端上被就地翻譯。翻譯可以是動態(tài)的,因為其允許用戶與經(jīng)翻譯的頁面上的腳本交互,如同用戶將與在非翻譯的頁面上的腳本交互一樣。安全文件和本地(或內聯(lián)網(wǎng))文件可以被翻譯,即使在翻譯服務不能訪問所述文件時。僅以用戶登錄可訪問的文件可以被翻譯,即使在翻譯服務不能訪問所述文件時??蛻舳藱C器可以翻譯標記語言文檔或將標記語言文檔恢復為其原始語言, 而不用從服務器重新加載文檔內容。在附圖和下面的描述中闡述了在本說明書中描述的主題的一個或多個實施例的細節(jié)。其他特征、方面和優(yōu)勢從描述、附圖和權利要求將變得顯而易見。
圖1A-1B圖示了示例標記語言文檔和標記語言文檔的示例顯示。圖IC圖示了標記語言文檔的內部文檔對象模型(DOM)表示。圖2圖示了 HTML網(wǎng)頁的示例顯示和該網(wǎng)頁的翻譯版本的示例顯示。圖3圖示了提供標記語言文檔的翻譯的系統(tǒng)的示例體系結構。圖4圖示了在其中標記語言文檔的翻譯通過附加組件的動作來提供的系統(tǒng)的示例體系結構。圖5圖示了用于將文檔的內部表示中的文本節(jié)點中的文本組合成段,并且將所述段發(fā)送給翻譯服務以被翻譯的示例方法。圖6圖示了用于使用經(jīng)翻譯的段來更新標記語言文檔的內部表示的示例方法。圖7圖示了用于動態(tài)地翻譯文檔的一部分的方法的示例。圖8圖示了用于使用緩存來從文檔的經(jīng)翻譯的版本轉換成文檔的原始語言版本的示例方法。
圖9圖示了用于翻譯標記語言文檔的文本的示例方法。各附圖中相同的參考數(shù)字和標記指示相同的元素。
具體實施例方式圖1A-1B圖示了示例標記語言文檔102和標記語言文檔102的示例顯示104。標記語言文檔102是HTML文檔。在文檔中,注釋被表示為標簽。例如,<html>標簽106和</html>標簽108指示在所述標簽之間的文本是HTML語言。<title>標簽110和 〈/title〉標簽112指示在所述標簽之間的文本應當被格式化為標題。<b>標簽114和</b> 標簽116指示在所述標簽之間的文本應當以粗體來格式化。圖IB圖示了標記語言文檔102的顯示。為了顯示標記語言文檔,標記語言顯示程序生成文檔的內部表示,并且如注釋所指定的,從內部表示呈現(xiàn)文檔。標記語言顯示程序是允許用戶顯示標記語言文檔并且與標記語言文檔交互的計算機程序。這樣的程序的示例是 web瀏覽器,例如,從加州山景城的Mozilla Project可獲得的FirefoxTM和XML文檔編輯
ο一些標記語言文檔包括指示圖像應當被顯示的圖像注釋,諸如<img>標簽122。一些標記語言文檔包括腳本標簽,諸如〈script〉和〈/script〉標簽IM和126,其指示在腳本標簽之間的文本是腳本(即,可執(zhí)行程序代碼)。當文檔被顯示時,腳本可以由標記語言顯示程序執(zhí)行。腳本的示例包括動作腳本、JavaScript腳本和AJAX腳本。圖IC圖示了標記語言文檔102的內部文檔對象模型(DOM)表示150。文檔對象模型提供允許執(zhí)行腳本以訪問并且更新文檔的式樣、結構和內容的接口。執(zhí)行腳本可以處理文檔,并且使用DOM來將處理的結果并入文檔。如圖IC中所示,DOM將文檔表示為節(jié)點對象樹。每一個節(jié)點對應于文檔的一部分。 節(jié)點可以是各種類型的,包括例如根節(jié)點(例如,根節(jié)點152)、元素節(jié)點(例如,標題元素節(jié)點1 )、屬性節(jié)點(例如,源屬性節(jié)點160)、文本節(jié)點(例如,文本節(jié)點158)和腳本節(jié)點 (例如,腳本節(jié)點16 。文本節(jié)點是與文檔中的文本相對應的節(jié)點,并且包括存儲在節(jié)點中的文本。元素節(jié)點是與諸如<html>標簽或〈title〉標簽的文檔中的注釋相對應的節(jié)點。屬性節(jié)點是與諸如〈image〉標簽的源的元素節(jié)點的屬性相對應的節(jié)點。腳本節(jié)點包括可執(zhí)行腳本。DOM表示還可以包括其他類型的節(jié)點。樹的結構由節(jié)點之間的層級關系來確定。節(jié)點的層級關系是由于文檔中的注釋的嵌套。層級結構以及在樹的同一級別處的節(jié)點的順序由標記語言顯示程序處理,并且用于展現(xiàn)文檔。圖2圖示了 HTML網(wǎng)頁202的示例顯示和該網(wǎng)頁的翻譯版本224的示例顯示。所圖示的顯示由web瀏覽器生成。Web瀏覽器最初以網(wǎng)頁的原始形式顯示網(wǎng)頁,其中網(wǎng)頁的文本是以網(wǎng)頁的原始語言。當翻譯被啟動時,web瀏覽器(或運行于web瀏覽器中的附加件)從文檔的內部表示提取文本段(例如,段A 210、段B 212和段C 214),并且將所述段發(fā)送給翻譯服務216。Web 瀏覽器從翻譯服務接收經(jīng)翻譯的段(例如,經(jīng)翻譯的段A 218、經(jīng)翻譯的段B220和經(jīng)翻譯的段C 222),并且使用所述經(jīng)翻譯的段來更新文檔202的內部表示,導致文檔的翻譯版本。 例如,web瀏覽器使用經(jīng)翻譯的段A來更新與區(qū)域204相對應的內部表示、使用經(jīng)翻譯的段B 220來更新與區(qū)域206相對應的內部表示以及使用經(jīng)翻譯的段C 222來更新與區(qū)域208 相對應的內部表示。因為內部表示已被更新,所以web瀏覽器顯示網(wǎng)頁的翻譯版本224。在一些實施方式中,web瀏覽器響應于請求翻譯的用戶輸入而執(zhí)行翻譯。例如,輸入可以是諸如點擊“翻譯頁面”按鈕203的用戶請求。在一些實施方式中,web瀏覽器可以被配置成翻譯不是用戶的優(yōu)選語言或用戶的優(yōu)選語言之一的所有網(wǎng)頁,或被配置成翻譯不是這樣的語言的文檔的部分。在一些實施方式中,一旦網(wǎng)頁被翻譯,web瀏覽器就監(jiān)視網(wǎng)頁對其的文本的改變。 例如,當在web瀏覽器中執(zhí)行的腳本修改網(wǎng)頁的文本時或當用戶點擊網(wǎng)頁中的鏈接,促使新的或替換文本被插入網(wǎng)頁中時,會發(fā)生改變。當web瀏覽器檢測到網(wǎng)頁的文本的改變時, 其識別新的文本,并且將該文本發(fā)送給翻譯服務。Web瀏覽器使用作為結果的經(jīng)翻譯的文本來更新內部表示,然后顯示與更新后的內部表示相對應的更新后的網(wǎng)頁。在一些實施方式中,用戶可以選擇所顯示的文本中的短語,并且促使web瀏覽器 (或運行于web瀏覽器中的附加件)展現(xiàn)所選擇的文本的翻譯。例如,用戶可以用鼠標或其他用戶輸入設備來選擇文本,并且提供請求所選擇的文本被翻譯的輸入。例如,輸入可以是促使鼠標光標懸停在所選擇的文本之上或選擇用戶界面元件來指示翻譯是期望的。作為響應,web瀏覽器使用翻譯服務來促使所選擇的文本被翻譯。當web瀏覽器從翻譯服務接收經(jīng)翻譯的文本時,web瀏覽器可以通過工具提示(在所選擇的文本上方顯示的框)或其他圖形用戶界面元件向用戶展現(xiàn)經(jīng)翻譯的文本。在一些實施方式中,網(wǎng)頁上的所顯示的文本是經(jīng)翻譯的文本,以及用戶促使web瀏覽器以所選擇的文本的原始語言展現(xiàn)所選擇的文本。原始語言文本可以被存儲在運行web瀏覽器的機器上,或可以從翻譯服務檢索。圖3圖示了提供標記語言文檔的翻譯的系統(tǒng)的示例體系結構。客戶端設備302運行標記語言顯示程序,其在本示例中是web瀏覽器304。Web瀏覽器304包括瀏覽器翻譯器模塊306和呈現(xiàn)器模塊310。呈現(xiàn)器模塊310通過呈現(xiàn)諸如文檔對象模型表示的文檔的內部表示來展現(xiàn)標記語言文檔。呈現(xiàn)器模塊310使用頁面翻譯器模塊312來翻譯所顯示的標記語言文檔。頁面翻譯器模塊312分析當前文檔的內部表示、從表示的文本節(jié)點提取文本、并且將該文本發(fā)送給瀏覽器翻譯模塊306以翻譯。頁面翻譯器模塊312從瀏覽器翻譯器模塊306接收經(jīng)翻譯的文本,并且更新內部表示。呈現(xiàn)器模塊310然后呈現(xiàn)更新后的內部表示。頁面翻譯器模塊312和瀏覽器翻譯器模塊306可以被配置成通過事件通知,例如函數(shù)回調、事件接收器、 進程間通信(IPC)消息或任何其他便利形式的模塊到模塊通信,來交互。在一些實施方式中,web瀏覽器304維護標記語言文檔的兩個內部表示與其原始語言的文檔相對應的未經(jīng)翻譯的內部表示和與文檔的翻譯相對應的經(jīng)翻譯的內部表示。頁面翻譯器模塊312更新經(jīng)翻譯的內部表示,以及呈現(xiàn)器模塊310展現(xiàn)經(jīng)翻譯的內部表示。在 web瀏覽器中執(zhí)行的腳本修改未經(jīng)翻譯的內部表示,并且作為響應,頁面翻譯器模塊312修改經(jīng)翻譯的內部表示。翻譯器組件314從頁面翻譯器模塊312接收與內部表示中的一個或多個文本節(jié)點相對應的文本。翻譯器組件314然后以可以由翻譯服務308處理的形式將文本編碼為一個或多個段,并且將文本發(fā)送給翻譯服務308以翻譯。在翻譯服務308的一些實施方式中,翻譯服務向其客戶端提供指示可接受段大小和編碼的翻譯政策。在一些實施方式中,段和其翻譯在被發(fā)送給翻譯服務之前被加密??梢允褂脴藴始用軈f(xié)議,例如HTTPS、對稱密鑰密碼術或不對稱(公鑰/私鑰)密碼術,來對段進行加密。翻譯器組件314維護將每一個翻譯請求映射到其對應的段的數(shù)據(jù)。當段可能包含來自多個節(jié)點的文本時,翻譯器組件還維護將每一個段部分映射到內部文檔表示中的對應文本節(jié)點的數(shù)據(jù)。當從翻譯服務接收到翻譯時,翻譯器組件使用所述數(shù)據(jù)來將響應映射到適當?shù)奈谋竟?jié)點。翻譯服務308從瀏覽器翻譯模塊接收段、將段的文本翻譯成不同的語言,并且返回段的翻譯。在一些實施方式中,翻譯服務在與客戶端設備302分離的服務器上運行。在替選實施方式中,翻譯服務運行于客戶端設備302上。在一些實施方式中,每一個段是文本串。替選地,每一個段(以及其翻譯)可以是將文本節(jié)點的文本作為單獨實體包含的數(shù)據(jù)結構。例如,每一個段可以包括多個子段,其中每一個子段包括來自文本節(jié)點的文本以及可選的關于該文本的元數(shù)據(jù)。發(fā)送給翻譯服務 308的文本可以包括內嵌式標記語言標簽(例如,在文本塊內出現(xiàn)的標簽)。作為另一個示例,每一個段可以是包含文本節(jié)點的內部表示(或內部表示的一部分、或內部表示的簡化或刪節(jié)版本)。如果內部表示太大而不能作為單個內部表示發(fā)送,則可以以多個段將內部表示發(fā)送給翻譯服務。當翻譯服務接收到段時,其翻譯段中的文本,并且以與所接收到的段相同的形式(例如,如果段是文本串,則以文本串形式、或如果段是段集合,則以子段集合形式)返回經(jīng)翻譯的段。替選地,翻譯服務可以以使得經(jīng)翻譯的文本可以被映射到段中的文本節(jié)點的形式返回經(jīng)翻譯的段(例如,翻譯服務可以返回"original text(原始文本)" =〃 translated text (經(jīng)翻譯的文本)“對,其可以用于將經(jīng)翻譯的文本映射回存儲在文本節(jié)點中的原始文本、或當段是文檔的內部表示時,翻譯服務可以返回與文檔的部分內部表示中的文本節(jié)點的文本相對應的子段集合)。如果文本包括內嵌式標記語言標簽,則翻譯服務可以翻譯文本,而不翻譯標簽,然后在適當?shù)奈恢锰帉撕灢迦牖亟?jīng)翻譯的文本。例如,如果文本包括多個句子,并且一個句子以<bX/b>標簽標記,則翻譯服務可以以相同的標簽標記經(jīng)翻譯的句子。當翻譯服務接收包含子段的段時,其翻譯每一個子段的文本,并且生成包含每一個經(jīng)翻譯的子段的條目的經(jīng)翻譯的段。在一些實施方式中,翻譯服務將元數(shù)據(jù)與段一起接收。元數(shù)據(jù)指定關于段的另外信息,例如,段應當被翻譯成的語言、原始文檔的語言(例如,如從文檔中的HTTP頭檢測到的)、段對應于的文本節(jié)點的標識、與文本相對應的標記注釋或文檔自身的元數(shù)據(jù)(例如, 文檔的元標簽)。在一些實施方式中,翻譯服務可以檢測關于段的信息。例如,翻譯服務可以通過將段的文本與不同語言的文本進行比較,并且選擇最密切匹配的語言來檢測段的當前語言。 任何檢測到的信息可以與經(jīng)翻譯的段一起被返回。圖4圖示了在其中標記語言文檔的翻譯通過附加組件的動作來提供的系統(tǒng)的示例體系結構。在該示例中,系統(tǒng)包括常規(guī)web瀏覽器404和安裝在該web瀏覽器中的瀏覽器附加件412,例如工具條或小組件,所述瀏覽器附加件412與DOM和翻譯服務交互以及還可以與用戶交互。
附加件412包括翻譯器模塊410。除在常規(guī)系統(tǒng)中,web瀏覽器和附加件僅與文檔的一個內部表示交互之外,翻譯器模塊執(zhí)行在上面參考圖3描述的頁面翻譯器模塊312和瀏覽器翻譯器模塊406兩者的功能。圖5圖示了用于將文檔的內部表示中的文本節(jié)點中的文本組合成段,并且將所述段發(fā)送給翻譯服務以被翻譯的示例方法500。在本示例中,文檔是包括多個框架(frame)的 HTML文檔。該方法依次考慮每一個框架的節(jié)點、從文本節(jié)點生成文本段并且發(fā)送所述文本段以被翻譯。為簡便起見,示例方法500將關于執(zhí)行方法500的系統(tǒng)來描述。例如,該系統(tǒng)可以是運行web瀏覽器304或帶有附加件412的web瀏覽器404的計算機。該系統(tǒng)將frame_index變量初始化為0 (步驟502)。Framejndex識別當前框架, 即當前正被處理的框架。該系統(tǒng)依次從每一個框架提取文本,直到所有框架已被處理。該系統(tǒng)然后初始化currentjode變量以存儲對當前框架的第一節(jié)點的引用(例如,指針)(步驟506)。 Current_node變量指向當前節(jié)點,即當前正被處理的節(jié)點。該系統(tǒng)確定當前節(jié)點是否是文本節(jié)點(步驟508)。例如,這可以通過檢查當前節(jié)點的類型來完成。如果當前節(jié)點是文本節(jié)點,則該系統(tǒng)將當前節(jié)點中的文本添加到nodejegment 數(shù)據(jù)結構和original_String_array數(shù)據(jù)結構。該系統(tǒng)還將對節(jié)點自身的引用添加到 node_array數(shù)據(jù)結構(步驟510)。Node_array存儲對文檔中的文本節(jié)點的引用。Original, string—array存儲文檔中的文本節(jié)點的原始(未經(jīng)翻譯的)文本,并且充當每一個節(jié)點中的原始文本的緩存。Nodejegment存儲正被構建的當前段。例如,段可以如翻譯服務的翻譯政策所指定的被格式化。該系統(tǒng)確定nodejegment是否應當被發(fā)送給翻譯服務以供翻譯(步驟512)。該系統(tǒng)可以例如基于以下來確定nodejegment是否應當被發(fā)送以供翻譯段是否足夠大(即, 如翻譯服務或該系統(tǒng)的段政策所指定的,包含足夠的文本)、段是否將會變得太大(例如, 由于下一文本節(jié)點的大小將促使段超過翻譯服務所指定的最大大小)或段是否表示文檔結構的連貫塊。例如,當段具有預確定數(shù)量的文本節(jié)點、至少預確定數(shù)量的字符或至少預確定數(shù)量的詞時,該系統(tǒng)可以確定nodejegment應當被發(fā)送以供翻譯。預定義數(shù)量可以是絕對數(shù)量或可接受的范圍。替選地,當段例如通過包含整個段落、整個句子或文檔的其他邏輯單元來表示文檔結構的連貫塊時,該系統(tǒng)可以使用內部表示的結構來確定段應當被發(fā)送以供翻譯。例如,一旦與段落元素節(jié)點相對應的段包含為該段落元素的后代的所有文本節(jié)點時,其可以被翻譯。在一些實施方式中,段一足夠大,該系統(tǒng)就發(fā)送該段以供翻譯。如果nodejegment 應當被翻譯,則將nodejegment中的文本發(fā)送給翻譯服務器,以及清除nodejegment數(shù)據(jù)結構(步驟514)。該系統(tǒng)然后開始處理框架中的下一節(jié)點。該系統(tǒng)更新currentjode以指向框架中的下一節(jié)點(步驟516)。如果當前節(jié)點不是框架的末端節(jié)點,則該系統(tǒng)確定新的當前節(jié)點是否是文本節(jié)點(步驟518、508)。否則,該系統(tǒng)遞增framejndex (步驟518、520),并且確定framejndex是否小于框架總數(shù)(步驟502)。如果framejndex大于或等于框架總數(shù) (即,當所有的框架已被處理時),則該系統(tǒng)可以將nodejegment中的文本發(fā)送給翻譯服務以被翻譯,并且清除nodejegment數(shù)據(jù)結構(步驟522)。圖6圖示了用于使用經(jīng)翻譯的段來更新標記語言文檔的內部表示的示例方法 600。該方法遍及與經(jīng)翻譯的段相對應的內部表示中的文本節(jié)點迭代,并且使用經(jīng)翻譯的段中的經(jīng)翻譯的文本來更新節(jié)點的文本。為簡便起見,示例方法600將關于執(zhí)行方法600的系統(tǒng)來描述。例如,該系統(tǒng)可以是運行web瀏覽器304或帶有附加件412的web瀏覽器404 的計算機。該系統(tǒng)接收與來自文檔的文本段相對應的經(jīng)翻譯的段,并且將經(jīng)翻譯的段存儲在 translatecLsegment數(shù)據(jù)結構中(步驟602)。經(jīng)翻譯的段例如從翻譯服務接收。經(jīng)翻譯的段對應于(例如,當該系統(tǒng)執(zhí)行在上面參考圖5所描述的方法時)被添加到nodtarray 的在開始索引和結束索引之間的節(jié)點。該系統(tǒng)為經(jīng)翻譯的段將translated_segment_index變量初始化為0,并且將 node_array_index 變量初始化為開始索弓I (步驟 604)。Translated_segment_index 識別經(jīng)翻譯的段的當前子段,即當前正被處理的子段。N0de_array_index識別nodtarray中的其文本正被更新的當前節(jié)點。該系統(tǒng)將current_n0de變量設置為指向正被更新的當前節(jié)點,即,由node_ array_index識別的節(jié)點,并且將經(jīng)翻譯的段的與translated_segment_index相對應的子段中的文本存儲在current_node_translation數(shù)據(jù)結構中(步驟608)。該系統(tǒng)驗證當前節(jié)點是有效節(jié)點(步驟610)。如果節(jié)點未從內部文檔表示移除,并且自從該節(jié)點被添加到nodtarray之后,該節(jié)點的文本未被改變過,則該節(jié)點是有效的。例如,當在顯示文檔的web瀏覽器中執(zhí)行的腳本在系統(tǒng)發(fā)送節(jié)點的文本以供翻譯之后從文檔的內部表示移除了該節(jié)點時、當web瀏覽器在系統(tǒng)發(fā)送該節(jié)點的文本以供翻譯之后開始加載新的文檔時、或當該節(jié)點的文本在系統(tǒng)發(fā)送該節(jié)點的文本以供翻譯之后改變過時,該節(jié)點可以變得無效。對無效節(jié)點的檢測可以依賴于顯示文檔的web瀏覽器。例如,在一些實施方式中,當節(jié)點被移除或修改時,該系統(tǒng)接收轉變事件。在這些實施方式中,當該系統(tǒng)接收關于節(jié)點的轉變事件時,該系統(tǒng)將該節(jié)點標記為臟的。當節(jié)點未被標記過時,該節(jié)點是有效的。在一些實施方式中,當該系統(tǒng)接收關于節(jié)點的轉變事件(例如,DOM級別2轉變事件)時,該系統(tǒng)自動從nodtarray移除該無效節(jié)點。在一些實施方式中,該系統(tǒng)通過試圖訪問節(jié)點來確定該節(jié)點是否是有效的。如果該系統(tǒng)不能訪問該節(jié)點,則該節(jié)點是無效的。如果該系統(tǒng)能夠訪問該節(jié)點,則該系統(tǒng)將該節(jié)點的文本與存儲在0riginal_String_array中的關于該節(jié)點的文本進行比較。如果文本匹配,則該系統(tǒng)確定該節(jié)點是有效的。否則,該系統(tǒng)確定該節(jié)點是無效的。如果當前節(jié)點不是有效節(jié)點,則該系統(tǒng)從nodtarray移除該節(jié)點(步驟612)。在一些實施方式中,一旦該系統(tǒng)從nodtarray移除當前節(jié)點,該系統(tǒng)就確定該節(jié)點因為其從文檔被移除還是因為其被修改過而是無效的。如果該節(jié)點被修改過,則該系統(tǒng)然后確定指向該經(jīng)修改的節(jié)點的指針是否被存儲在nodtarray中。如果沒有,則該系統(tǒng)通過以下來翻譯該經(jīng)修改的節(jié)點中的文本將該經(jīng)修改的節(jié)點添加到nodtarray、將該經(jīng)修改的節(jié)點的文本發(fā)送給翻譯服務以供翻譯、并且用從翻譯服務接收到的經(jīng)翻譯的文本來更新替換節(jié)點ο
如果當前節(jié)點是有效節(jié)點,則該系統(tǒng)用存儲在currentjodejranslation 中的文本來替換該節(jié)點的文本,并且將current_node_translation中的文本存儲在 translated—string—array 中(/y^M 614)。 該系 充然后]131]§±曾 translated—segment—index 禾口 node—array—index : 開女臺處理與經(jīng)翻譯的段相對應的下一節(jié)點(步驟616)。該系統(tǒng)通過將translatecLsegmentjndex與經(jīng)翻譯的段中的子段總數(shù)進行比較,并且將n0de_array_index與關于經(jīng)翻譯的段的結束索引進行比較,來確定整個經(jīng)翻譯的段是否已被處理(步驟606)。如果translatecLsegmentjndex大于或等于元素總數(shù),并且n0de_array_index大于結束索引,則該系統(tǒng)停止執(zhí)行該方法。否則,該系統(tǒng)更新 current—node 禾口 current—node—translation (步驟 608)。圖7圖示了用于動態(tài)地翻譯文檔的一部分的示例方法700。在本示例中,文檔是包括一個或多個框架的HTML文檔。為簡便起見,方法700將關于執(zhí)行方法700的系統(tǒng)來描述。例如,該系統(tǒng)可以是運行web瀏覽器304或帶有附加件412的web瀏覽器404的計算機。該系統(tǒng)接收文檔已被更新的通知(步驟702)。例如,當顯示文檔的web瀏覽器執(zhí)行文檔中的腳本,并且執(zhí)行腳本修改文檔的文本內容時,文檔可以被更新。當該系統(tǒng)是web 瀏覽器時,通知可以從呈現(xiàn)器模塊310來接收。當該系統(tǒng)是瀏覽器附加件412時,通知可以從顯示文檔的web瀏覽器404來接收。該系統(tǒng)遍歷n0de_arrat來移除該數(shù)組中的任何無效節(jié)點(步驟704)。該系統(tǒng)可以確定節(jié)點是否是有效的,例如,如在上面參考圖6所描述的。該系統(tǒng)將framejndex初始化為0以識別頁面中的第一框架(步驟706)。該系統(tǒng)將currentjode初始化為指向當前框架的第一節(jié)點,即正被處理的當前節(jié)點(步驟710)。該系統(tǒng)確定當前節(jié)點是否是文本節(jié)點(步驟712)。如果currentjode是文本節(jié)點,則該系統(tǒng)檢查translated_string_array以確定當前節(jié)點的文本是否被記錄在 translated_string_array 中(/y^M 714)。如果current_node的文本未被記錄在translated_string_array中,則該系統(tǒng)將該文本節(jié)點中的文本添加到node_segment和original_string_array (步驟716)。該系統(tǒng)確定nodejegment是否應當被發(fā)送以供翻譯(步驟718)。如果這樣的話,該系統(tǒng)將node_ segment中的文本發(fā)送給翻譯服務,然后清除nodejegment數(shù)據(jù)結構(步驟720)。該系統(tǒng)然后通過更新currentjode以指向框架中的下一節(jié)點來開始處理框架中的下一節(jié)點(步驟722)。如果當前節(jié)點不是框架的末端節(jié)點,則該系統(tǒng)確定新的節(jié)點是否是文本節(jié)點(步驟724、712)。否則,該系統(tǒng)遞增framejndex,并且確定framejndex是否小于框架總數(shù)(步驟726,708)。當framejndex不小于框架總數(shù)(即,所有框架已被處理)時,該系統(tǒng)將node_ segment中的文本發(fā)送給翻譯服務,然后清除nodejegment數(shù)據(jù)結構(步驟728)。圖8圖示了用于使用緩存來從文檔的經(jīng)翻譯的版本切換到文檔的原始語言版本的示例方法800。該方法遍及n0de_arrat所識別的每一個有效節(jié)點迭代,并且用節(jié)點的原始文本替換節(jié)點中的經(jīng)翻譯的文本。為簡便起見,示例方法800將關于執(zhí)行方法800的系統(tǒng)來描述。例如,該系統(tǒng)可以是運行web瀏覽器304或帶有附加件412的web瀏覽器404 的計算機。該系統(tǒng)將node_array_index初始化為0 (步驟802)。該系統(tǒng)然后將current_node 變量設置為指向存儲在node_array中的在nod^arrayjndex處的節(jié)點,并且將存儲在 original_string_array中的與當前節(jié)點相對應的文本存儲在current_node_original_ string數(shù)據(jù)結構中(步驟806)。Current_node_original_string存儲當前節(jié)點的原始文本。該系統(tǒng)確定當前節(jié)點是否是有效節(jié)點(步驟808),例如,如在上面參考圖6所描述的。如果當前節(jié)點是有效節(jié)點,則該系統(tǒng)用存儲在current_n0de_0riginal_String中的文本來替換當前節(jié)點的當前文本(步驟810)。如果當前節(jié)點不是有效節(jié)點,則該系統(tǒng)跳過該節(jié)點。在一些實施方式中,該系統(tǒng)確定是否存在經(jīng)修改的節(jié)點,并且向翻譯服務請求經(jīng)修改的節(jié)點的翻譯,如在上面參考圖6所描述的。該系統(tǒng)然后遞增node_array_index (步驟812),并且確定node_array_index是否小于node_array中的節(jié)點數(shù)(步驟804)。圖9圖示了用于翻譯標記語言文檔的文本的示例方法900。為簡便起見,示例方法900將關于執(zhí)行方法900的系統(tǒng)來描述。例如,該系統(tǒng)可以是運行web瀏覽器304或帶有瀏覽器附加件412的web瀏覽器404的計算機。該系統(tǒng)顯示標記語言文檔(步驟902)。例如,標記語言文檔可以是web文檔或用戶的本地計算機上的文檔。Web文檔可以使用安全傳輸協(xié)議,例如使用安全超文本傳輸協(xié)議 (HTTPS)或使用不安全傳輸協(xié)議,例如超文本傳輸協(xié)議(HTTP)來檢索。該系統(tǒng)通過呈現(xiàn)標記語言文檔的內部表示,例如如在上面參考圖IC所描述的文檔對象模型表示,來顯示標記語言文檔。該系統(tǒng)將包含來自文本節(jié)點的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,以及文本節(jié)點中的文本用對應的經(jīng)翻譯的文本來替換以生成標記語言文檔的經(jīng)翻譯的內部表示(步驟 904)。在一些實施方式中,翻譯如在上面參考圖5所描述的來請求,以及節(jié)點的文本如在上面參考圖6所描述的用經(jīng)翻譯的文本來替換。在替選實施方式中,每一個節(jié)點的文本被分別發(fā)送給翻譯服務。通過呈現(xiàn)經(jīng)翻譯的內部表示來顯示標記語言文檔的翻譯(步驟906)。在一些實施方式中,該系統(tǒng)遞增地翻譯節(jié)點的文本,并且更新內部表示。例如,該系統(tǒng)可以請求與文本節(jié)點的子集相對應的文本的翻譯,用與節(jié)點的該子集相對應的經(jīng)翻譯的文本來更新內部表示,導致部分經(jīng)翻譯的表示,然后呈現(xiàn)部分經(jīng)翻譯的表示。該系統(tǒng)然后可以為文本節(jié)點的不同子集重復那些步驟。在一些這樣的實施方式中,當標記語言文檔被加載時(例如,當內部表示的部分被接收時),該系統(tǒng)可以執(zhí)行遞增翻譯。在一些實施方式中,在文檔的經(jīng)翻譯的版本被顯示之后,該系統(tǒng)(例如,響應于用戶輸入)將文檔恢復為其原始語言,并且通過呈現(xiàn)文檔的原始語言內部表示來顯示原始語言版本。在一些實施方式中,該系統(tǒng)從節(jié)點的原始語言文本的緩存生成原始語言內部表示, 例如如在上面參考圖8所描述的。在替選實施方式中,該系統(tǒng)將原始語言內部表示維護為經(jīng)翻譯的內部表示的卷影(shadow)副本,并且更新原始語言內部表示以反映對文檔的文本的任何改變。
在一些實施方式中,在文檔的經(jīng)翻譯的版本被顯示之后,該系統(tǒng)接收以下通知正用新的文本替換文本節(jié)點中的一個中的文本、或正將包含新的文本的新的節(jié)點添加到內部表示。該系統(tǒng)可以接收該通知,例如作為來自例如運行于顯示文檔的標記語言顯示程序中的事件處理機的修改事件。響應于該通知,該系統(tǒng)可以將包含新的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的經(jīng)翻譯的文本替換文本節(jié)點中的文本。在一些實施方式中,修改事件識別正被修改或添加的節(jié)點,以及該系統(tǒng)將該節(jié)點的文本發(fā)送給翻譯服務。在替選實施方式中,該系統(tǒng)遍歷內部表示以識別已被修改或添加的節(jié)點,例如如在上面參考圖7所描述的。在本說明書中描述的主題和操作的實施例可以以數(shù)字電子電路、或者以計算機軟件、固件或硬件,包括在本說明書中公開的結構以及其結構等價物、或者以以上的一個或多個的組合來實現(xiàn)。可以將在本說明書中描述的主題的實施例實現(xiàn)為一個或多個計算機程序產(chǎn)品,即計算機程序指令的一個或多個模塊,其被編碼在計算機存儲介質上、由數(shù)據(jù)處理裝置執(zhí)行或控制數(shù)據(jù)處理裝置的操作。替選地或另外地,程序指令可以被編碼在非自然生成的傳播信號上,所述信號例如機器生成的電的、光學或電磁的信號,其被生成以編碼用于傳輸?shù)竭m當接收器裝置的信息以供數(shù)據(jù)處理裝置執(zhí)行。計算機存儲介質可以是下述或被包括在下述中計算機可讀存儲設備、計算機可讀存儲基片、隨機或串行存取存儲器陣列或設備、或以上的一個或多個的組合。此外,雖然計算機存儲介質不是傳播信號,但是計算機存儲介質可以是以非自然生成的傳播信號編碼的計算機程序指令的源或目的地。計算機存儲介質還可以是或被包括在一個或多個分立的物理組件或介質(例如,多個⑶、盤或其他存儲設備)中。在本說明書中描述的操作可以被實現(xiàn)為由數(shù)據(jù)處理裝置對存儲在一個或多個計算機可讀存儲設備上或從其他源接收的數(shù)據(jù)執(zhí)行的操作。術語“數(shù)據(jù)處理裝置”包含用于處理數(shù)據(jù)的所有類型的裝置、設備以及機器,包括例如可編程處理器、計算機、芯片上的系統(tǒng)或多個前述或前述的組合。裝置可以包括專用邏輯電路,例如FPGA(現(xiàn)場可編程門陣列)或ASIC(專用集成電路)。除硬件外,裝置還可以包括創(chuàng)建用于討論中的計算機程序的執(zhí)行環(huán)境的代碼,例如構成處理器固件、協(xié)議堆棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、跨平臺運行環(huán)境、虛擬機或以上的一個或多個的組合的代碼。裝置和執(zhí)行環(huán)境可以實現(xiàn)各種不同的計算模型基礎設施,諸如web服務、分布式計算和網(wǎng)格計算基礎設施。計算機程序(也稱作程序、軟件、軟件應用、腳本或代碼)可以以任何形式的編程語言編寫,包括編譯或解釋語言、說明性或過程性語言,并且其可以以任何形式部署,包括作為獨立程序或作為模塊、組件、子程序、對象或適于在計算環(huán)境中使用的其他單元。計算機程序可以但不必對應于文件系統(tǒng)中的文件??梢詫⒊绦虼鎯υ诒3制渌绦蚧驍?shù)據(jù)的文件(例如,存儲在標記語言文檔中的一個或多個腳本)的一部分、專用于討論中的程序的單個文件或者多個協(xié)調文件(例如,存儲一個或多個模塊、子程序或部分代碼的文件)中??梢詫⒂嬎銠C程序部署為在一個計算機上或者在位于一個地點或跨多個地點分布并且由通信網(wǎng)絡互連的多個計算機上執(zhí)行。在本說明書中描述的過程和邏輯流可以由執(zhí)行一個或多個計算機程序的一個或多個可編程處理器執(zhí)行以通過操作輸入數(shù)據(jù)并且生成輸出來執(zhí)行動作。過程和邏輯流還可以由專用邏輯電路執(zhí)行,以及裝置還可以被實現(xiàn)為專用邏輯電路,所述專用邏輯電路例如 FPGA (現(xiàn)場可編程門陣列)或ASIC (專用集成電路)。適于執(zhí)行計算機程序的處理器包括例如通用和專用微處理器兩者,以及任何類型的數(shù)字計算機的任何一個或多個處理器。通常,處理器將從只讀存儲器或隨機存取存儲器或兩者接收指令和數(shù)據(jù)。計算機的主要元件是用于執(zhí)行與指令一致的動作的處理器和用于存儲指令和數(shù)據(jù)的一個或多個存儲器設備。通常,計算機還包括用于存儲數(shù)據(jù)的一個或多個海量存儲設備,例如磁、磁光盤或光盤,或可操作地耦接以從所述一個或多個海量存儲設備接收數(shù)據(jù)或向所述一個或多個海量存儲設備傳送數(shù)據(jù),或兩者。然而,計算機不必具有這樣的設備。此外,可以將計算機嵌入另一個設備中,所述設備例如移動電話、個人數(shù)字助理 (PDA)、移動音頻或視頻播放器、游戲控制臺、全球定位系統(tǒng)(GPQ接收器或便攜式存儲設備(例如,通用串行總線(USB)閃存驅動器),僅列出一些。適于存儲計算機程序指令和數(shù)據(jù)的設備包括所有形式的非易失性存儲器、介質和存儲器設備,包括例如半導體存儲器設備,例如EPROM、EEPROM和閃存設備;磁盤,例如內部硬盤或可移動盤;磁光盤;以及⑶ROM 和DVD-ROM盤。處理器和存儲器可以由專用邏輯電路補充,或合并入專用邏輯電路。為了提供與用戶的交互,本說明書中描述的主題的實施例可以在具有下述的計算機上實現(xiàn)用于向用戶顯示信息的顯示設備,例如CRT(陰極射線管)或LCD(液晶顯示)監(jiān)視器,以及用戶通過其可以向計算機提供輸入的鍵盤和指示設備,例如鼠標或跟蹤球。也可以使用其他類型的設備來提供與用戶的交互;例如,提供給用戶的反饋可以是任何形式的感知反饋,例如視覺反饋、聽覺反饋或觸覺反饋;以及可以以任何形式,包括聲學的、話音或觸覺的輸入,接收來自用戶的輸入。另外,計算機可以通過將文檔發(fā)送給用戶所使用的設備以及從用戶所使用的設備接收文檔,例如通過響應于從web瀏覽器接收的請求而向用戶的客戶端設備上的web瀏覽器發(fā)送網(wǎng)頁,來與用戶交互。本說明書中描述的主題的實施例可以在計算系統(tǒng)中實現(xiàn),所述計算系統(tǒng)包括例如作為數(shù)據(jù)服務器的后端組件、或者包括例如應用服務器的中間件組件、或者包括前端組件, 例如具有用戶通過其可以與在本說明書中描述的主題的實施方式交互的圖形用戶界面或 Web瀏覽器的客戶端計算機、或者一個或多個這樣的后端、中間件或前端組件的任何組合。 系統(tǒng)的組件可以通過例如通信網(wǎng)絡的任何形式或介質的數(shù)字數(shù)據(jù)通信互連。通信網(wǎng)絡的示例包括局域網(wǎng)(“LAN")和廣域網(wǎng)(“WAN")、互聯(lián)網(wǎng)網(wǎng)絡(例如因特網(wǎng))以及對等網(wǎng)絡 (例如,自組對等網(wǎng)絡)。計算系統(tǒng)可以包括客戶端和服務器。客戶端和服務器通常彼此遠離并且典型地通過通信網(wǎng)絡交互??蛻舳撕头掌鞯年P系依靠在各個計算機上運行并且彼此具有客戶端-服務器關系的計算機程序產(chǎn)生。在一些實施例中,服務器向客戶端設備傳送數(shù)據(jù)(例如,HTML頁面)(例如,為向與客戶端設備交互的用戶顯示數(shù)據(jù)以及從所述用戶接收用戶輸入的目的)。可以在服務器處從客戶端設備接收在客戶端設備處生成的數(shù)據(jù)(例如,用戶交互的結果)。雖然本說明書包含許多具體實現(xiàn)細節(jié),但是這些細節(jié)不應當被解釋為對本發(fā)明或可以主張的內容的范圍的限制,而應當被解釋為對可以具體到本發(fā)明的特定實施例的特征的描述。還可以將在本說明書中在分立的實施例的情境中描述的某些特征組合在單個實施例中實現(xiàn)。相反地,也可以將在單個實施例的情境中描述的各種特征分離地在多個實施例中實現(xiàn)或在任何適當?shù)淖咏M合中實現(xiàn)。此外,盡管可能在上面將特征描述為在某些組合中起作用,甚至最初主張如此,但是可以在一些情況下將來自所主張的組合的一個或多個特征從組合中刪去,并且可以將所主張的組合指向子組合或者子組合的變體。類似地,雖然在附圖中以特定順序描繪了操作,但是不應當將這理解為需要以所示的特定順序或者以連續(xù)順序執(zhí)行這樣的操作、或者需要執(zhí)行所有圖示的操作,才能達到期望的結果。在某些情況下,多任務以及并行處理可以是有利的。此外,不應當將在上述實施例中的各種系統(tǒng)組件的分離理解為在所有實施例中均需要這樣的分離,而應當理解的是,通常可以將所描述的程序組件和系統(tǒng)集成到一起成為單個軟件產(chǎn)品或封裝為多個軟件
女口
廣 PFt ο因此,已經(jīng)描述了本發(fā)明的特定實施例。其他實施例在權利要求的范圍內。在一些情況下,可以以不同的順序來執(zhí)行權利要求中記載的動作并且仍然達到期望的結果。另外,在附圖中描繪的過程不必需要所示的特定順序或連續(xù)順序,來達到期望的結果。在某些實施方式中,多任務以及并行處理可以是有利的。下述是示例性實施例。第一實施例是一種方法,其包括以下動作通過呈現(xiàn)標記語言文檔的內部表示來顯示原始語言的標記語言文檔,該表示包括節(jié)點,所述節(jié)點包括一個或多個文本節(jié)點和一個或多個非文本節(jié)點,文本節(jié)點每一個包括各自的原始文本;以及當從內部表示顯示文檔時,將包含作為不同數(shù)據(jù)實體的來自文本節(jié)點的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的對應的經(jīng)翻譯的文本替換文本節(jié)點中的文本,以生成標記語言文檔的第一經(jīng)翻譯的內部表示,其中文本節(jié)點中的原始文本是以原始語言,以及經(jīng)翻譯的文本是以不同的第二語言;由此,通過呈現(xiàn)第一經(jīng)翻譯的內部表示來顯示標記語言文檔的第一翻譯。第二實施例是一種方法,其包括第一實施例的動作,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括從文本節(jié)點提取文本,并且將所提取的文本組裝成數(shù)據(jù)結構,其中文本中的每一個被存儲為數(shù)據(jù)結構中的不同數(shù)據(jù)實體。第三實施例是一種方法,其包括第一實施例的動作,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括發(fā)送內部表示的副本。第四實施例是一種方法,其包括第一實施例的動作,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括以多個段發(fā)送該數(shù)據(jù)結構。第五實施例是一種方法,其包括第一實施例的動作,其中文檔的內部表示是文檔對象模型表示。第六實施例是一種方法,其包括第一實施例的動作,并且進一步包括以下動作接收正用原始語言的新的文本替換第一文本節(jié)點中的第一文本的通知;然后將包含新的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的第二語言的第一經(jīng)翻譯的文本替換第一文本節(jié)點中的文本,以生成文檔的第二經(jīng)翻譯的內部表示;由此,通過呈現(xiàn)第二經(jīng)翻譯的內部表示來顯示標記語言文檔的第二翻譯。第七實施例是一種方法,其包括第六實施例的動作,其中新的文本由在標記語言顯示程序中執(zhí)行的可執(zhí)行腳本生成。第八實施例是一種方法,其包括第一實施例的動作,并且進一步包括以下動作在用對應的經(jīng)翻譯的文本替換原始文本之前,驗證每一個原始文本是未改變的。第九實施例是一種方法,其包括第一實施例的動作,并且進一步包括以下動作存儲與一個或多個文本節(jié)點相對應的原始文本;接收請求顯示原始語言的文檔的輸入;以及用對應的原始文本替換第一經(jīng)翻譯的內部表示中的文本節(jié)點中的文本,導致原始語言內部表示;由此,通過呈現(xiàn)第一經(jīng)翻譯的內部表示來顯示標記語言文檔的翻譯。第十實施例是一種方法,其包括以下動作通過呈現(xiàn)文檔的內部表示來顯示原始語言的文檔,該表示包括節(jié)點,所述節(jié)點包括一個或多個文本節(jié)點和一個或多個非文本節(jié)點,文本節(jié)點每一個包括各自的原始文本;然后選擇內部表示中的第一文本節(jié)點,將包含第一文本節(jié)點中的第一文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的對應的第一經(jīng)翻譯的文本替換第一文本節(jié)點中的第一文本,以生成文檔的第一部分經(jīng)翻譯的內部表示,其中第一文本是原始語言,以及第一經(jīng)翻譯的文本是不同的第二語言;由此,通過呈現(xiàn)第一部分經(jīng)翻譯的內部表示來顯示標記語言文檔的第一部分翻譯;然后,選擇第一部分經(jīng)翻譯的內部表示中的第二文本節(jié)點,將包含作為不同數(shù)據(jù)實體的第二文本節(jié)點中的第二文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的對應的第二經(jīng)翻譯的文本替換第二文本節(jié)點中的第二文本,以生成文檔的第二部分經(jīng)翻譯的內部表示,其中第二文本是原始語言,以及第二經(jīng)翻譯的文本是第二語言;由此,通過呈現(xiàn)第二部分經(jīng)翻譯的內部表示來顯示標記語言文檔的第二部分翻譯。第十一實施例是一種方法,其包括第十實施例的動作,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括從文本節(jié)點提取文本,并且將所提取的文本組裝成數(shù)據(jù)結構,其中文本中的每一個被存儲為數(shù)據(jù)結構中的不同數(shù)據(jù)實體。第十二實施例是一種方法,其包括第十實施例的動作,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括發(fā)送內部表示的副本。第十三實施例是一種方法,其包括第十實施例的動作,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括以多個段發(fā)送該數(shù)據(jù)結構。第十四實施例是一種方法,其包括第十實施例的動作,其中文檔的內部表示是文檔對象模型表示。第十五實施例是一種方法,其包括第十實施例的動作,進一步包括以下動作接收正用原始語言的新的文本替換第三文本節(jié)點中的第三文本的通知;然后將包含新的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的第二語言的對應的第三經(jīng)翻譯的文本替換第三文本節(jié)點中的文本,以生成文檔的第三部分經(jīng)翻譯的內部表示,由此,通過呈現(xiàn)第三部分經(jīng)翻譯的內部表示來顯示標記語言文檔的第三部分翻譯。第十六實施例是一種方法,其包括第十五實施例的動作,其中新的文本由在標記語言顯示程序中執(zhí)行的可執(zhí)行腳本生成。第十七實施例是一種方法,其包括第十實施例的動作,并且進一步包括以下動作 在用對應的經(jīng)翻譯的文本替換文本節(jié)點中的每一個文本之前,驗證該文本節(jié)點中的每一個文本是未改變的。第十八實施例是一種方法,其包括第十實施例的動作,并且進一步包括以下動作 存儲與一個或多個文本節(jié)點相對應的原始文本;接收請求顯示原始語言的文檔的輸入;以及用對應的原始文本替換第一經(jīng)翻譯的內部表示中的文本節(jié)點中的文本,導致原始語言內部表示;由此,通過呈現(xiàn)第一經(jīng)翻譯的內部表示來顯示標記語言文檔的翻譯。第十九實施例是一種方法,其包括以下動作提供接收文本并且生成該文本的翻譯的翻譯服務;提供被配置成在標記語言顯示程序中運行的翻譯模塊,標記語言顯示程序通過呈現(xiàn)標記語言文檔的內部表示來顯示原始語言的標記語言文檔,表示包括節(jié)點,節(jié)點包括一個或多個文本節(jié)點和一個或多個非文本節(jié)點,文本節(jié)點每一個包括各自的原始文本,翻譯模塊被配置成執(zhí)行以下操作當標記語言顯示程序從內部表示顯示文檔時,將包含作為不同數(shù)據(jù)實體的來自文本節(jié)點的文本的數(shù)據(jù)結構發(fā)送給翻譯服務;用從翻譯服務接收到的對應的經(jīng)翻譯的文本替換文本節(jié)點中的文本,以生成標記語言文檔的第一經(jīng)翻譯的內部表示,其中文本節(jié)點中的原始文本是原始語言,以及經(jīng)翻譯的文本是不同的第二語言,以及向標記語言顯示程序提供第一經(jīng)翻譯的內部表示以供呈現(xiàn)。第二十實施例是一種方法,其包括第十九實施例的動作,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括從文本節(jié)點提取文本,并且將所提取的文本組裝成數(shù)據(jù)結構,其中文本中的每一個被存儲為數(shù)據(jù)結構中的不同數(shù)據(jù)實體。第二十一實施例是一種方法,其包括第十九實施例的動作,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括發(fā)送內部表示的副本。第二十二實施例是一種方法,其包括第十九實施例的動作,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括以多個段發(fā)送該數(shù)據(jù)結構。第二十三實施例是一種方法,其包括第十九實施例的動作,其中文檔的內部表示是文檔對象模型表示。第二十四實施例是一種方法,其包括第十九實施例的動作,其中翻譯模塊被進一步配置成執(zhí)行以下操作接收正用原始語言的新的文本替換第一文本節(jié)點中的第一文本的通知;然后將包含新的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的第二語言的第一經(jīng)翻譯的文本替換第一文本節(jié)點中的文本,以生成文檔的第二經(jīng)翻譯的內部表示;然后向標記語言顯示程序提供第二經(jīng)翻譯的內部表示以供呈現(xiàn)。第二十五實施例是一種方法,其包括第二十四實施例的動作,其中新的文本由在標記語言顯示程序中執(zhí)行的可執(zhí)行腳本生成。第二十六實施例是一種方法,其包括第十九實施例的動作,并且進一步包括以下動作在用對應的經(jīng)翻譯的文本替換原始文本之前,驗證每一個原始文本是未改變的。第二十七實施例是一種方法,其包括第十九實施例的動作,并且進一步包括以下動作存儲與一個或多個文本節(jié)點相對應的原始文本;接收請求顯示原始語言的文檔的輸入;以及用對應的原始文本替換第一經(jīng)翻譯的內部表示中的文本節(jié)點中的文本,導致原始語言內部表示;由此,通過呈現(xiàn)第一經(jīng)翻譯的內部表示來顯示標記語言文檔的翻譯。第二十八實施例是一種方法,其包括以下動作接收選擇了在客戶端設備上的用戶界面中顯示的標記語言文檔中的包括多個詞的短語的通知;向在服務器上的翻譯服務請求與所選擇的短語相對應的文本的翻譯;以及從翻譯服務接收翻譯,然后在用戶界面中顯示該翻譯。第二十九實施例是一種方法,其包括第二十八實施例的動作,其中翻譯在工具提示中顯示。第三十實施例是一種方法,其包括以下動作存儲與經(jīng)翻譯的標記語言文檔中的經(jīng)翻譯的文本相對應的原始文本,其中原始文本是原始語言,以及經(jīng)翻譯的文本是不同的第二語言;在用戶界面中顯示經(jīng)翻譯的標記語言文檔;接收選擇了經(jīng)翻譯的文本中的包括多個詞的短語的通知;以及響應于該通知,顯示與所選擇的短語相對應的原始文本。第三十一實施例是一種方法,其包括第三十實施例的動作,其中與所選擇的短語相對應的原始文本在工具提示中顯示。第三十二實施例是一種系統(tǒng),其包括可操作來執(zhí)行操作的一個或多個計算機,所述操作包括通過呈現(xiàn)標記語言文檔的內部表示來顯示原始語言的標記語言文檔,該表示包括節(jié)點,所述節(jié)點包括一個或多個文本節(jié)點和一個或多個非文本節(jié)點,文本節(jié)點每一個包括各自的原始文本;以及當從內部表示顯示文檔時,將包含作為不同數(shù)據(jù)實體的來自文本節(jié)點的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的對應的經(jīng)翻譯的文本替換文本節(jié)點中的文本,以生成標記語言文檔的第一經(jīng)翻譯的內部表示,其中文本節(jié)點中的原始文本是原始語言,以及經(jīng)翻譯的文本是不同的第二語言;由此,通過呈現(xiàn)第一經(jīng)翻譯的內部表示來顯示標記語言文檔的第一翻譯。第三十三實施例是第三十二實施例的系統(tǒng),其進一步包括提供翻譯服務的服務器設備。第三十四實施例是第三十二實施例的系統(tǒng),其中該系統(tǒng)包括運行標記語言顯示程序的客戶端設備,所述標記語言顯示程序可操作來執(zhí)行顯示標記語言文檔操作;以及在標記語言顯示程序中運行的附加件,其可操作來執(zhí)行發(fā)送數(shù)據(jù)結構和替換文本節(jié)點中的文本操作。第三十五實施例是第三十四實施例的系統(tǒng),其中附加件是小組件。第三十六實施例是第三十四實施例的系統(tǒng),其中附加件是工具欄。第三十七實施例是第三十二實施例的系統(tǒng),其中該系統(tǒng)包括運行web瀏覽器的客戶端設備,所述web瀏覽器可操作來執(zhí)行顯示標記語言文檔、發(fā)送數(shù)據(jù)結構、以及替換文本節(jié)點中的文本操作。第三十八實施例是第三十二實施例的系統(tǒng),其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括從文本節(jié)點提取文本,并且將所提取的文本組裝成數(shù)據(jù)結構,其中文本中的每一個被存儲為數(shù)據(jù)結構中的不同數(shù)據(jù)實體。第三十九實施例是第三十二實施例的系統(tǒng),其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括發(fā)送內部表示的副本。第四十實施例是第三十二實施例的系統(tǒng),其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括以多個段發(fā)送該數(shù)據(jù)結構。第四十一實施例是第三十二實施例的系統(tǒng),其中文檔的內部表示是文檔對象模型表不。第四十二實施例是第三十二實施例的系統(tǒng),其可進一步操作來執(zhí)行操作,所述操作包括接收正用原始語言的新的文本替換第一文本節(jié)點中的第一文本的通知;然后將包含新的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的第二語言的第一經(jīng)翻譯的文本替換第一文本節(jié)點中的文本,以生成文檔的第二經(jīng)翻譯的內部表示;由此,通過呈現(xiàn)第二經(jīng)翻譯的內部表示來顯示標記語言文檔的第二翻譯。第四十三實施例是第四十二實施例的系統(tǒng),其中新的文本由在標記語言顯示程序中執(zhí)行的可執(zhí)行腳本生成。第四十四實施例是第三十二實施例的系統(tǒng),其可進一步操作來執(zhí)行操作,所述操作包括在用對應的經(jīng)翻譯的文本替換原始文本之前,驗證每一個原始文本是未改變的。第四十五實施例是第三十二實施例的系統(tǒng),其可進一步操作來執(zhí)行操作,所述操作包括存儲與一個或多個文本節(jié)點相對應的原始文本;接收請求顯示原始語言的文檔的輸入;以及用對應的原始文本替換第一經(jīng)翻譯的內部表示中的文本節(jié)點中的文本,導致原始語言內部表示;由此,通過呈現(xiàn)第一經(jīng)翻譯的內部表示來顯示標記語言文檔的翻譯。第四十六實施例是一種系統(tǒng),其包括可操作來執(zhí)行操作的一個或多個計算機,所述操作包括通過呈現(xiàn)文檔的內部表示來顯示原始語言的文檔,該表示包括節(jié)點,所述節(jié)點包括一個或多個文本節(jié)點和一個或多個非文本節(jié)點,文本節(jié)點每一個包括各自的原始文本;然后選擇表示中的第一文本節(jié)點,將包含第一文本節(jié)點中的第一文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的對應的第一經(jīng)翻譯的文本替換第一文本節(jié)點中的第一文本,以生成文檔的第一部分經(jīng)翻譯的內部表示,其中第一文本是原始語言,以及第一經(jīng)翻譯的文本是不同的第二語言;由此,通過呈現(xiàn)第一部分經(jīng)翻譯的內部表示來顯示標記語言文檔的第一部分翻譯;然后,選擇第一部分經(jīng)翻譯的內部表示中的第二文本節(jié)點,將包含第二文本節(jié)點中的第二文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的對應的第二經(jīng)翻譯的文本替換第二文本節(jié)點中的第二文本,以生成文檔的第二部分經(jīng)翻譯的內部表示,其中第二文本是原始語言,以及第二經(jīng)翻譯的文本是第二語言;由此,通過呈現(xiàn)第二部分經(jīng)翻譯的內部表示來顯示標記語言文檔的第二部分翻譯。第四十七實施例是第四十六實施例的系統(tǒng),其進一步包括提供翻譯服務的服務器設備。第四十八實施例是第四十六實施例的系統(tǒng),其中該系統(tǒng)包括運行標記語言顯示程序的客戶端設備,所述標記語言顯示程序可操作來執(zhí)行顯示標記語言文檔操作;以及在標記語言顯示程序中運行的附加件,其可操作來執(zhí)行發(fā)送數(shù)據(jù)結構和替換文本節(jié)點中的文本操作。第四十九實施例是第四十六實施例的系統(tǒng),其中附加件是小組件。第五十實施例是第四十六實施例的系統(tǒng),其中附加件是工具欄。第五十一實施例是第四十六實施例的系統(tǒng),其中該系統(tǒng)包括運行web瀏覽器的客戶端設備,所述web瀏覽器可操作來執(zhí)行顯示標記語言文檔、發(fā)送數(shù)據(jù)結構、以及替換文本節(jié)點中的文本操作。第五十二實施例是第四十六實施例的系統(tǒng),其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括從文本節(jié)點提取文本,并且將所提取的文本組裝成數(shù)據(jù)結構,其中文本中的每一個被存儲為數(shù)據(jù)結構中的不同數(shù)據(jù)實體。第五十三實施例是第四十六實施例的系統(tǒng),其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括發(fā)送內部表示的副本。第五十四實施例是第四十六實施例的系統(tǒng),其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括以多個段發(fā)送該數(shù)據(jù)結構。第五十五實施例是第四十六實施例的系統(tǒng),其中文檔的內部表示是文檔對象模型表不。
第五十六實施例是第四十六實施例的系統(tǒng),其可進一步操作來執(zhí)行操作,所述操作包括接收正用原始語言的新的文本替換第三文本節(jié)點中的第三文本的通知;然后將包含新的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的第二語言的對應的第三經(jīng)翻譯的文本替換第三文本節(jié)點中的文本,以生成文檔的第三部分經(jīng)翻譯的內部表示; 由此,通過呈現(xiàn)第三部分經(jīng)翻譯的內部表示來顯示標記語言文檔的第三部分翻譯。第五十七實施例是第五十六實施例的系統(tǒng),其中新的文本由在標記語言顯示程序中執(zhí)行的可執(zhí)行腳本生成。第五十八實施例是第四十六實施例的系統(tǒng),其可進一步操作來執(zhí)行操作,所述操作包括在用對應的經(jīng)翻譯的文本替換文本節(jié)點中的每一個文本之前,驗證該文本節(jié)點中的每一個文本是未改變的。第五十九實施例是第四十六實施例的系統(tǒng),其可進一步操作來執(zhí)行操作,所述操作包括存儲與一個或多個文本節(jié)點相對應的原始文本;接收請求顯示原始語言的文檔的輸入;以及用對應的原始文本替換第一經(jīng)翻譯的內部表示中的文本節(jié)點中的文本,導致原始語言內部表示;由此,通過呈現(xiàn)第一經(jīng)翻譯的內部表示來顯示標記語言文檔的翻譯。第六十實施例是一種系統(tǒng),其包括可操作來執(zhí)行操作的一個或多個計算機,所述操作包括提供接收文本并且生成該文本的翻譯的翻譯服務;提供被配置成在標記語言顯示程序中運行的翻譯模塊,標記語言顯示程序通過呈現(xiàn)標記語言文檔的內部表示來顯示原始語言的標記語言文檔,表示包括節(jié)點,節(jié)點包括一個或多個文本節(jié)點和一個或多個非文本節(jié)點,文本節(jié)點每一個包括各自的原始文本,翻譯模塊被配置成執(zhí)行以下操作當標記語言顯示程序從內部表示顯示文檔時,將包含作為不同數(shù)據(jù)實體的來自文本節(jié)點的文本的數(shù)據(jù)結構發(fā)送給翻譯服務;用從翻譯服務接收到的對應的經(jīng)翻譯的文本替換文本節(jié)點中的文本,以生成標記語言文檔的第一經(jīng)翻譯的內部表示,其中文本節(jié)點中的原始文本是原始語言,以及經(jīng)翻譯的文本是不同的第二語言;以及向標記語言顯示程序提供第一經(jīng)翻譯的內部表示以供呈現(xiàn)。第六十一實施例是第六十實施例的系統(tǒng),其中該系統(tǒng)包括運行翻譯服務的服務
ο第六十二實施例是第六十實施例的系統(tǒng),其中翻譯模塊與在標記語言顯示程序中運行的附加件相關聯(lián)。第六十三實施例是第六十二實施例的系統(tǒng),其中附加件是小組件。第六十四實施例是第六十二實施例的系統(tǒng),其中附加件是工具欄。第六十五實施例是第六十實施例的系統(tǒng),其中翻譯模塊和標記語言顯示程序是 web瀏覽器。第六十六實施例是第六十實施例的系統(tǒng),其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括從文本節(jié)點提取文本,并且將所提取的文本組裝成數(shù)據(jù)結構,其中文本中的每一個被存儲為數(shù)據(jù)結構中的不同數(shù)據(jù)實體。第六十七實施例是第六十實施例的系統(tǒng),其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括發(fā)送內部表示的副本。第六十八實施例是第六十實施例的系統(tǒng),其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括以多個段發(fā)送該數(shù)據(jù)結構。
第六十九實施例是第六十實施例的系統(tǒng),其中文檔的內部表示是文檔對象模型表
7J\ ο第七十實施例是第六十實施例的系統(tǒng),其中翻譯模塊被進一步配置成執(zhí)行以下操作接收正用原始語言的新的文本替換第一文本節(jié)點中的第一文本的通知;然后將包含新的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的第二語言的第一經(jīng)翻譯的文本替換第一文本節(jié)點中的文本,以生成文檔的第二經(jīng)翻譯的內部表示;然后,向標記語言顯示程序提供第二經(jīng)翻譯的內部表示以供呈現(xiàn)。第七十一實施例是第七十實施例的系統(tǒng),其中新的文本由在標記語言顯示程序中執(zhí)行的可執(zhí)行腳本生成。第七十二實施例是第六十實施例的系統(tǒng),其可進一步操作來執(zhí)行操作,所述操作包括在用對應的經(jīng)翻譯的文本替換原始文本之前,驗證每一個原始文本是未改變的。第七十三實施例是第六十實施例的系統(tǒng),其可進一步操作來執(zhí)行操作,所述操作包括存儲與一個或多個文本節(jié)點相對應的原始文本;接收請求顯示原始語言的文檔的輸入;以及用對應的原始文本替換第一經(jīng)翻譯的內部表示中的文本節(jié)點中的文本,導致原始語言內部表示;由此,通過呈現(xiàn)第一經(jīng)翻譯的內部表示來顯示標記語言文檔的翻譯。第七十四實施例是一種系統(tǒng),其包括可操作來執(zhí)行操作的一個或多個計算機,所述操作包括接收選擇了在客戶端設備上的用戶界面中顯示的標記語言文檔中的包括多個詞的短語的通知;向在服務器上的翻譯服務請求與所選擇的短語相對應的文本的翻譯;以及從翻譯服務接收翻譯,然后在用戶界面中顯示該翻譯。第七十五實施例是第七十四實施例的系統(tǒng),其中該系統(tǒng)包括運行附加件的客戶端設備,所述附加件可操作來執(zhí)行接收通知、請求文本的翻譯以及從翻譯服務接收翻譯操作。第七十六實施例是第七十五實施例的系統(tǒng),其中附加件是小組件。第七十七實施例是第七十五實施例的系統(tǒng),其中附加件是工具欄。第七十八實施例是第七十四實施例的系統(tǒng),其中該系統(tǒng)包括運行web瀏覽器的客戶端設備,所述web瀏覽器可操作來執(zhí)行接收通知、請求文本的翻譯以及從翻譯服接收翻譯操作。第七十九實施例是第七十四實施例的系統(tǒng),其中翻譯在工具提示中顯示。第八十實施例是一種系統(tǒng),其包括可操作來執(zhí)行操作的一個或多個計算機,所述操作包括存儲與經(jīng)翻譯的標記語言文檔中的經(jīng)翻譯的文本相對應的原始文本,其中原始文本是原始語言,以及經(jīng)翻譯的文本是不同的第二語言;在用戶界面中顯示經(jīng)翻譯的標記語言文檔;接收選擇了經(jīng)翻譯的文本中的包括多個詞的短語的通知;以及響應于該通知, 顯示與所選擇的短語相對應的原始文本。第八十一實施例是第八十實施例的系統(tǒng),其中該系統(tǒng)包括運行附加件的客戶端設備,所述附加件可操作來執(zhí)行存儲原始文本、顯示經(jīng)翻譯的標記語言文檔、接收通知以及顯示原始文本操作。第八十二實施例是第八十一實施例的系統(tǒng),其中附加件是小組件。第八十三實施例是第八十一實施例的系統(tǒng),其中附加件是工具欄。第八十四實施例是第八十實施例的系統(tǒng),其中該系統(tǒng)包括運行web瀏覽器的客戶端設備,所述web瀏覽器可操作來執(zhí)行存儲原始文本、顯示經(jīng)翻譯的標記語言文檔、接收通知以及顯示原始文本操作。第八十五實施例是第八十實施例的系統(tǒng),其中與所選擇的短語相對應的原始文本在工具提示中顯示。第八十六實施例是一種編碼在計算機存儲介質上的計算機程序產(chǎn)品,其包括指令,所述指令當由數(shù)據(jù)處理裝置執(zhí)行時促使數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括通過呈現(xiàn)標記語言文檔的內部表示來顯示原始語言的標記語言文檔,該表示包括節(jié)點,所述節(jié)點包括一個或多個文本節(jié)點和一個或多個非文本節(jié)點,文本節(jié)點每一個包括各自的原始文本;以及當從內部表示顯示文檔時,將包含作為不同數(shù)據(jù)實體的來自文本節(jié)點的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的對應的經(jīng)翻譯的文本替換文本節(jié)點中的文本,以生成標記語言文檔的第一經(jīng)翻譯的內部表示,其中文本節(jié)點中的原始文本是原始語言,以及經(jīng)翻譯的文本是不同的第二語言;由此,通過呈現(xiàn)第一經(jīng)翻譯的內部表示來顯示標記語言文檔的第一翻譯。第八十七實施例是第八十六實施例的計算機程序產(chǎn)品,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括從文本節(jié)點提取文本,并且將所提取的文本組裝成數(shù)據(jù)結構,其中文本中的每一個被存儲為數(shù)據(jù)結構中的不同數(shù)據(jù)實體。第八十八實施例是第八十六實施例的計算機程序產(chǎn)品,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括發(fā)送內部表示的副本。第八十九實施例是第八十六實施例的計算機程序產(chǎn)品,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括以多個段發(fā)送該數(shù)據(jù)結構。第九十實施例是第八十六實施例的計算機程序產(chǎn)品,其中文檔的內部表示是文檔對象模型表示。第九十一實施例是第八十六實施例的計算機程序產(chǎn)品,其可進一步操作來促使數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括接收正用原始語言的新的文本替換第一文本節(jié)點中的第一文本的通知;然后將包含新的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的第二語言的第一經(jīng)翻譯的文本替換第一文本節(jié)點中的文本,以生成文檔的第二經(jīng)翻譯的內部表示;由此,通過呈現(xiàn)第二經(jīng)翻譯的內部表示來顯示標記語言文檔的第二翻譯。第九十二實施例是第九十一實施例的計算機程序產(chǎn)品,其中新的文本來自在標記語言顯示程序中執(zhí)行的可執(zhí)行腳本。第九十三實施例是第八十六實施例的計算機程序產(chǎn)品,其可進一步操作來促使數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括在用對應的經(jīng)翻譯的文本替換原始文本之前,驗證每一個原始文本是未改變的。第九十四實施例是第八十六實施例的計算機程序產(chǎn)品,其可進一步操作來促使數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括存儲與一個或多個文本節(jié)點相對應的原始文本;接收請求顯示原始語言的文檔的輸入;以及用對應的原始文本替換第一經(jīng)翻譯的內部表示中的文本節(jié)點中的文本,導致原始語言內部表示;由此,通過呈現(xiàn)第一經(jīng)翻譯的內部表示來顯示標記語言文檔的翻譯。第九十五實施例是一種編碼在計算機存儲介質上的計算機程序產(chǎn)品,其包括指令,所述指令當由數(shù)據(jù)處理裝置執(zhí)行時促使數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括通過呈現(xiàn)文檔的內部表示來顯示原始語言的文檔,該表示包括節(jié)點,所述節(jié)點包括一個或多個文本節(jié)點和一個或多個非文本節(jié)點,文本節(jié)點每一個包括各自的原始文本;然后選擇內部表示中的第一文本節(jié)點,將包含第一文本節(jié)點中的第一文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的對應的第一經(jīng)翻譯的文本替換第一文本節(jié)點中的第一文本,以生成文檔的第一部分經(jīng)翻譯的內部表示,其中第一文本是以原始語言,以及第一經(jīng)翻譯的文本是不同的第二語言;由此,通過呈現(xiàn)第一部分經(jīng)翻譯的內部表示來顯示標記語言文檔的第一部分翻譯;然后,選擇第一部分經(jīng)翻譯的內部表示中的第二文本節(jié)點,將包含作為不同數(shù)據(jù)實體的第二文本節(jié)點中的第二文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的對應的第二經(jīng)翻譯的文本替換第二文本節(jié)點中的第二文本,以生成文檔的第二部分經(jīng)翻譯的內部表示,其中第二文本是原始語言,以及第二經(jīng)翻譯的文本是第二語言;由此, 通過呈現(xiàn)第二部分經(jīng)翻譯的內部表示來顯示標記語言文檔的第二部分翻譯。第九十六實施例是第九十五實施例的計算機程序產(chǎn)品,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括從文本節(jié)點提取文本,并且將所提取的文本組裝成數(shù)據(jù)結構,其中文本中的每一個被存儲為數(shù)據(jù)結構中的不同數(shù)據(jù)實體。第九十七實施例是第九十五實施例的計算機程序產(chǎn)品,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括發(fā)送內部表示的副本。第九十八實施例是第九十七實施例的計算機程序產(chǎn)品,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括以多個段發(fā)送該數(shù)據(jù)結構。第九十九實施例是第九十五實施例的計算機程序產(chǎn)品,其中文檔的內部表示是文檔對象模型表示。第一百實施例是第九十五實施例的計算機程序產(chǎn)品,其可進一步操作來促使數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括接收正用原始語言的新的文本替換第三文本節(jié)點中的第三文本的通知;然后將包含新的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的第二語言的對應的第三經(jīng)翻譯的文本替換第三文本節(jié)點中的文本,以生成文檔的第三部分經(jīng)翻譯的內部表示,由此,通過呈現(xiàn)第三部分經(jīng)翻譯的內部表示來顯示標記語言文檔的第三部分翻譯。第一百零一實施例是第一百實施例的計算機程序產(chǎn)品,其中新的文本由在標記語言顯示程序中執(zhí)行的可執(zhí)行腳本生成。第一百零二實施例是第九十五實施例的計算機程序產(chǎn)品,其可進一步操作來促使數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括在用對應的經(jīng)翻譯的文本替換文本節(jié)點中的每一個文本之前,驗證該文本節(jié)點中的每一個文本是未改變的。第一百零三實施例是第九十五實施例的計算機程序產(chǎn)品,其可進一步操作來促使數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括存儲與一個或多個文本節(jié)點相對應的原始文本; 接收請求顯示原始語言的文檔的輸入;以及用對應的原始文本替換第一經(jīng)翻譯的內部表示中的文本節(jié)點中的文本,導致原始語言內部表示;由此,通過呈現(xiàn)第一經(jīng)翻譯的內部表示來顯示標記語言文檔的翻譯。第一百零四實施例是一種編碼在計算機存儲介質上的計算機程序產(chǎn)品,其包括指令,所述指令當由數(shù)據(jù)處理裝置執(zhí)行時促使數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括提供接收文本并且生成該文本的翻譯的翻譯服務;提供被配置成在標記語言顯示程序中運行的翻譯模塊,標記語言顯示程序通過呈現(xiàn)標記語言文檔的內部表示來顯示原始語言的標記語言文檔,表示包括節(jié)點,節(jié)點包括一個或多個文本節(jié)點和一個或多個非文本節(jié)點,文本節(jié)點每一個包括各自的原始文本,翻譯模塊被配置成執(zhí)行以下操作當標記語言顯示程序從內部表示顯示文檔時,將包含作為不同數(shù)據(jù)實體的來自文本節(jié)點的文本的數(shù)據(jù)結構發(fā)送給翻譯服務;用從翻譯服務接收到的對應的經(jīng)翻譯的文本替換文本節(jié)點中的文本,以生成標記語言文檔的第一經(jīng)翻譯的內部表示,其中文本節(jié)點中的原始文本是原始語言,以及經(jīng)翻譯的文本是不同的第二語言,以及向標記語言顯示程序提供第一經(jīng)翻譯的內部表示以供呈現(xiàn)。第一百零五實施例是第一百零四實施例的計算機程序產(chǎn)品,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括從文本節(jié)點提取文本,并且將所提取的文本組裝成數(shù)據(jù)結構,其中文本中的每一個被存儲為數(shù)據(jù)結構中的不同數(shù)據(jù)實體。第一百零六實施例是第一百零四實施例的計算機程序產(chǎn)品,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括發(fā)送內部表示的副本。第一百零七實施例是第一百零四實施例的計算機程序產(chǎn)品,其中發(fā)送包含文本節(jié)點的文本的數(shù)據(jù)結構包括以多個段發(fā)送該數(shù)據(jù)結構。第一百零八實施例是第一百零四實施例的計算機程序產(chǎn)品,其中文檔的內部表示是文檔對象模型表示。第一百零九實施例是第一百零四實施例的計算機程序產(chǎn)品,其中翻譯模塊被進一步配置成執(zhí)行以下操作接收正用原始語言的新的文本替換第一文本節(jié)點中的第一文本的通知;然后將包含新的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從翻譯服務接收到的第二語言的第一經(jīng)翻譯的文本替換第一文本節(jié)點中的文本,以生成文檔的第二經(jīng)翻譯的內部表示;然后向標記語言顯示程序提供第二經(jīng)翻譯的內部表示以供呈現(xiàn)。第一百一十實施例是第一百零九實施例的計算機程序產(chǎn)品,其中新的文本由在標記語言顯示程序中執(zhí)行的可執(zhí)行腳本生成。第一百一十一實施例是第一百零四實施例的計算機程序產(chǎn)品,其進一步包括在用對應的經(jīng)翻譯的文本替換原始文本之前,驗證每一個原始文本是未改變的。第一百一十二實施例是第一百零四實施例的計算機程序產(chǎn)品,其進一步包括存儲與一個或多個文本節(jié)點相對應的原始文本;接收請求顯示原始語言的文檔的輸入;以及用對應的原始文本替換第一經(jīng)翻譯的內部表示中的文本節(jié)點中的文本,導致原始語言內部表示;由此,通過呈現(xiàn)第一經(jīng)翻譯的內部表示來顯示標記語言文檔的翻譯。第一百一十三實施例是一種編碼在計算機存儲介質上的計算機程序產(chǎn)品,其包括指令,所述指令當由數(shù)據(jù)處理裝置執(zhí)行時促使數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括接收選擇了在客戶端設備上的用戶界面中顯示的標記語言文檔中的包括多個詞的短語的通知; 向在服務器上的翻譯服務請求與所選擇的短語相對應的文本的翻譯;以及從翻譯服務接收翻譯,然后在用戶界面中顯示該翻譯。第一百一十四實施例是第一百一十三實施例的計算機程序產(chǎn)品,其中翻譯在工具提示中顯示。第一百一十五實施例是一種編碼在計算機可讀存儲介質上的計算機程序產(chǎn)品,其包括指令,所述指令當由數(shù)據(jù)處理裝置執(zhí)行時促使數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括 存儲與經(jīng)翻譯的標記語言文檔中的經(jīng)翻譯的文本相對應的原始文本,其中原始文本是原始語言,以及經(jīng)翻譯的文本是不同的第二語言;在用戶界面中顯示經(jīng)翻譯的標記語言文檔;接收選擇了經(jīng)翻譯的文本中的包括多個詞的短語的通知;以及響應于該通知,顯示與所選擇的短語相對應的原始文本。 第一百一十六實施例是第一百一十五實施例的計算機程序產(chǎn)品,其中與所選擇的短語相對應的原始文本在工具提示中顯示。
權利要求
1.一種方法,包括通過呈現(xiàn)標記語言文檔的內部表示來顯示原始語言的所述標記語言文檔,所述表示包括節(jié)點,所述節(jié)點包括一個或多個文本節(jié)點和一個或多個非文本節(jié)點,所述文本節(jié)點每一個包括各自的原始文本;以及當從所述內部表示顯示所述文檔時,將包含作為不同數(shù)據(jù)實體的來自所述文本節(jié)點的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從所述翻譯服務接收到的對應的經(jīng)翻譯的文本替換所述文本節(jié)點中的所述文本,以生成所述標記語言文檔的第一經(jīng)翻譯的內部表示,其中所述文本節(jié)點中的所述原始文本是所述原始語言,以及所述經(jīng)翻譯的文本是不同的第二語 、H ;由此,通過呈現(xiàn)所述第一經(jīng)翻譯的內部表示來顯示所述標記語言文檔的第一翻譯。
2.根據(jù)權利要求1所述的方法,其中發(fā)送包含所述文本節(jié)點的所述文本的數(shù)據(jù)結構包括從所述文本節(jié)點提取所述文本,并且將所提取的文本組裝成所述數(shù)據(jù)結構,其中所述文本中的每一個被存儲為所述數(shù)據(jù)結構中的不同數(shù)據(jù)實體。
3.根據(jù)權利要求1所述的方法,其中發(fā)送包含所述文本節(jié)點的所述文本的數(shù)據(jù)結構包括發(fā)送所述內部表示的副本。
4.根據(jù)權利要求1所述的方法,其中發(fā)送包含所述文本節(jié)點的所述文本的數(shù)據(jù)結構包括以多個段發(fā)送所述數(shù)據(jù)結構。
5.根據(jù)權利要求1所述的方法,其中所述文檔的所述內部表示是文檔對象模型表示。
6.根據(jù)權利要求1所述的方法,進一步包括接收正用所述原始語言的新的文本替換第一文本節(jié)點中的第一文本的通知;然后將包含所述新的文本的數(shù)據(jù)結構發(fā)送給所述翻譯服務,并且用從所述翻譯服務接收到的所述第二語言的第一經(jīng)翻譯的文本替換所述第一文本節(jié)點中的所述文本,以生成所述文檔的第二經(jīng)翻譯的內部表示;由此,通過呈現(xiàn)所述第二經(jīng)翻譯的內部表示來顯示所述標記語言文檔的第二翻譯。
7.根據(jù)權利要求6所述的方法,其中所述新的文本由在標記語言顯示程序中執(zhí)行的可執(zhí)行腳本生成。
8.根據(jù)權利要求1所述的方法,進一步包括在用對應的經(jīng)翻譯的文本替換所述原始文本之前,驗證每一個原始文本是未改變的。
9.根據(jù)權利要求1所述的方法,進一步包括存儲與一個或多個文本節(jié)點相對應的所述原始文本; 接收請求顯示所述原始語言的所述文檔的輸入;以及用對應的原始文本替換所述第一經(jīng)翻譯的內部表示中的所述文本節(jié)點中的所述文本, 導致原始語言內部表示;由此,通過呈現(xiàn)所述第一經(jīng)翻譯的內部表示來顯示所述標記語言文檔的翻譯。
10.一種方法,包括提供接收文本并且生成所述文本的翻譯的翻譯服務;提供被配置成在標記語言顯示程序中運行的翻譯模塊,所述標記語言顯示程序通過呈現(xiàn)標記語言文檔的內部表示來顯示原始語言的所述標記語言文檔,所述表示包括節(jié)點,所述節(jié)點包括一個或多個文本節(jié)點和一個或多個非文本節(jié)點,所述文本節(jié)點每一個包括各自的原始文本,所述翻譯模塊被配置成執(zhí)行以下操作當所述標記語言顯示程序從所述內部表示顯示所述文檔時,將包含作為不同數(shù)據(jù)實體的來自所述文本節(jié)點的文本的數(shù)據(jù)結構發(fā)送給翻譯服務;以及用從所述翻譯服務接收到的對應的經(jīng)翻譯的文本替換所述文本節(jié)點中的所述文本,以生成所述標記語言文檔的第一經(jīng)翻譯的內部表示,其中所述文本節(jié)點中的所述原始文本是所述原始語言,以及所述經(jīng)翻譯的文本是不同的第二語言,以及向所述標記語言顯示程序提供所述第一經(jīng)翻譯的內部表示以供呈現(xiàn)。
11.根據(jù)權利要求10所述的方法,其中發(fā)送包含所述文本節(jié)點的所述文本的數(shù)據(jù)結構包括從所述文本節(jié)點提取所述文本,并且將所提取的文本組裝成所述數(shù)據(jù)結構,其中所述文本中的每一個被存儲為所述數(shù)據(jù)結構中的不同數(shù)據(jù)實體。
12.根據(jù)權利要求10所述的方法,其中所述翻譯模塊被進一步配置成執(zhí)行以下操作 接收正用所述原始語言的新的文本替換第一文本節(jié)點中的第一文本的通知;然后將包含所述新的文本的數(shù)據(jù)結構發(fā)送給所述翻譯服務,并且用從所述翻譯服務接收到的所述第二語言的第一經(jīng)翻譯的文本替換所述第一文本節(jié)點中的所述文本,以生成所述文檔的第二經(jīng)翻譯的內部表示;然后向所述標記語言顯示程序提供所述第二經(jīng)翻譯的內部表示以供呈現(xiàn)。
13.一種方法,包括接收選擇了在客戶端設備上的用戶界面中顯示的標記語言文檔中的包括多個詞的短語的通知;向在服務器上的翻譯服務請求與所選擇的短語相對應的文本的翻譯;以及從所述翻譯服務接收翻譯,然后在所述用戶界面中顯示所述翻譯。
14.根據(jù)權利要求13所述的方法,其中所述翻譯在工具提示中顯示。
15.一種系統(tǒng),包括可操作來執(zhí)行操作的一個或多個計算機,所述操作包括通過呈現(xiàn)標記語言文檔的內部表示來顯示原始語言的所述標記語言文檔,所述表示包括節(jié)點,所述節(jié)點包括一個或多個文本節(jié)點和一個或多個非文本節(jié)點,所述文本節(jié)點每一個包括各自的原始文本;以及當從所述內部表示顯示所述文檔時,將包含作為不同數(shù)據(jù)實體的來自所述文本節(jié)點的文本的數(shù)據(jù)結構發(fā)送給翻譯服務,并且用從所述翻譯服務接收到的對應的經(jīng)翻譯的文本替換所述文本節(jié)點中的所述文本,以生成所述標記語言文檔的第一經(jīng)翻譯的內部表示,其中所述文本節(jié)點中的所述原始文本是所述原始語言,以及所述經(jīng)翻譯的文本是不同的第二語 、H ;由此,通過呈現(xiàn)所述第一經(jīng)翻譯的內部表示來顯示所述標記語言文檔的第一翻譯。
16.根據(jù)權利要求15所述的系統(tǒng),進一步包括提供所述翻譯服務的服務器設備。
17.根據(jù)權利要求15所述的系統(tǒng),其中所述系統(tǒng)包括運行標記語言顯示程序的客戶端設備,所述標記語言顯示程序可操作來執(zhí)行所述顯示標記語言文檔操作;以及在所述標記語言顯示程序中運行的附加件,所述附加件可操作來執(zhí)行所述發(fā)送所述數(shù)據(jù)結構和替換所述文本節(jié)點中的所述文本操作。
18.根據(jù)權利要求17所述的系統(tǒng),其中所述附加件是小組件。
19.根據(jù)權利要求17所述的系統(tǒng),其中所述附加件是工具欄。
20.根據(jù)權利要求15所述的系統(tǒng),其中所述系統(tǒng)包括運行web瀏覽器的客戶端設備, 所述web瀏覽器可操作來執(zhí)行所述顯示標記語言文檔、發(fā)送所述數(shù)據(jù)結構、以及替換所述文本節(jié)點中的所述文本操作。
21.根據(jù)權利要求15所述的系統(tǒng),其中發(fā)送包含所述文本節(jié)點的所述文本的數(shù)據(jù)結構包括從所述文本節(jié)點提取所述文本,并且將所提取的文本組裝成所述數(shù)據(jù)結構,其中所述文本中的每一個被存儲為所述數(shù)據(jù)結構中的不同數(shù)據(jù)實體。
22.根據(jù)權利要求15所述的系統(tǒng),其中發(fā)送包含所述文本節(jié)點的所述文本的數(shù)據(jù)結構包括發(fā)送所述內部表示的副本。
23.根據(jù)權利要求15所述的系統(tǒng),其中發(fā)送包含所述文本節(jié)點的所述文本的數(shù)據(jù)結構包括以多個段發(fā)送所述數(shù)據(jù)結構。
24.根據(jù)權利要求15所述的系統(tǒng),可進一步操作來執(zhí)行操作,所述操作包括 接收正用所述原始語言的新的文本替換第一文本節(jié)點中的第一文本的通知;然后將包含所述新的文本的數(shù)據(jù)結構發(fā)送給所述翻譯服務,并且用從所述翻譯服務接收到的所述第二語言的第一經(jīng)翻譯的文本替換所述第一文本節(jié)點中的所述文本,以生成所述文檔的第二經(jīng)翻譯的內部表示;由此,通過呈現(xiàn)所述第二經(jīng)翻譯的內部表示來顯示所述標記語言文檔的第二翻譯。
25.根據(jù)權利要求15所述的系統(tǒng),可進一步操作來執(zhí)行操作,所述操作包括 存儲與一個或多個文本節(jié)點相對應的所述原始文本;接收請求顯示所述原始語言的所述文檔的輸入;用對應的原始文本替換所述第一經(jīng)翻譯的內部表示中的所述文本節(jié)點中的所述文本, 導致原始語言內部表示;由此,通過呈現(xiàn)所述第一經(jīng)翻譯的內部表示來顯示所述標記語言文檔的翻譯。
26.—種系統(tǒng),包括可操作來執(zhí)行操作的一個或多個計算機,所述操作包括 提供接收文本并且生成所述文本的翻譯的翻譯服務;提供被配置成在標記語言顯示程序中運行的翻譯模塊,所述標記語言顯示程序通過呈現(xiàn)標記語言文檔的內部表示來顯示原始語言的所述標記語言文檔,所述表示包括節(jié)點,所述節(jié)點包括一個或多個文本節(jié)點和一個或多個非文本節(jié)點,所述文本節(jié)點每一個包括各自的原始文本,所述翻譯模塊被配置成執(zhí)行以下操作當所述標記語言顯示程序從所述內部表示顯示所述文檔時,將包含作為不同數(shù)據(jù)實體的來自所述文本節(jié)點的文本的數(shù)據(jù)結構發(fā)送給翻譯服務;用從所述翻譯服務接收到的對應的經(jīng)翻譯的文本替換所述文本節(jié)點中的所述文本,以生成所述標記語言文檔的第一經(jīng)翻譯的內部表示,其中所述文本節(jié)點中的所述原始文本是所述原始語言,以及所述經(jīng)翻譯的文本是不同的第二語言;以及向所述標記語言顯示程序提供所述第一經(jīng)翻譯的內部表示以供呈現(xiàn)。
27.根據(jù)權利要求沈所述的系統(tǒng),其中所述系統(tǒng)包括運行翻譯服務的服務器。
28.根據(jù)權利要求沈所述的系統(tǒng),其中所述翻譯模塊與在所述標記語言顯示程序中運行的附加件相關聯(lián)。
29.根據(jù)權利要求觀所述的系統(tǒng),其中所述附加件是小組件。
30.根據(jù)權利要求28所述的系統(tǒng),其中所述附加件是工具欄。
31.根據(jù)權利要求沈所述的系統(tǒng),其中所述翻譯模塊和所述標記語言顯示程序是web 瀏覽器。
32.—種系統(tǒng),包括可操作來執(zhí)行操作的一個或多個計算機,所述操作包括接收選擇了在客戶端設備上的用戶界面中顯示的標記語言文檔中的短語的通知; 向在服務器上的翻譯服務請求與所選擇的短語相對應的文本的翻譯;以及從所述翻譯服務接收翻譯,然后在所述用戶界面中顯示所述翻譯。
33.根據(jù)權利要求32所述的系統(tǒng),其中所述系統(tǒng)包括運行附加件的客戶端設備,所述附加件可操作來執(zhí)行所述接收通知、請求文本的翻譯以及從所述翻譯服務接收翻譯操作。
34.根據(jù)權利要求33所述的系統(tǒng),其中所述附加件是小組件。
35.根據(jù)權利要求33所述的系統(tǒng),其中所述附加件是工具欄。
36.根據(jù)權利要求32所述的系統(tǒng),其中所述系統(tǒng)包括運行web瀏覽器的客戶端設備,所述web瀏覽器可操作來執(zhí)行所述接收通知、請求文本的翻譯以及從所述翻譯服務接收翻譯操作。
全文摘要
用于用顯示替換對標記語言文檔的翻譯的方法、系統(tǒng)和裝置,包括計算機程序產(chǎn)品。在一些實施方式中,一種方法包括通過呈現(xiàn)標記語言文檔的內部表示來顯示原始語言的標記語言文檔;將包含作為不同數(shù)據(jù)實體的來自內部表示的文本節(jié)點的文本的數(shù)據(jù)結構發(fā)送給翻譯服務;用從翻譯服務接收到的經(jīng)翻譯的文本替換文本,導致經(jīng)翻譯的表示;以及通過呈現(xiàn)經(jīng)翻譯的表示來顯示文檔的第一翻譯。在一些實施方式中,執(zhí)行部分、遞增的翻譯。在一些實施方式中,一種方法包括接收選擇了標記語言文檔中的短語的通知;請求所選擇的短語的文本的翻譯;然后在用戶界面中顯示所接收到的翻譯。
文檔編號G06F17/28GK102428461SQ200980159038
公開日2012年4月25日 申請日期2009年3月18日 優(yōu)先權日2009年3月18日
發(fā)明者丹尼爾·羅薩特, 唐杰, 幺寶剛, 杰弗里·奇恩, 熱利德拉格·霍爾農(nóng), 艾維尼·沙阿 申請人:谷歌公司