專利名稱:本地化數(shù)據(jù)的可擴展xml格式和對象模型的制作方法
本地化數(shù)據(jù)的可擴展XML格式和對象模型些旦 冃眾近年來,軟件市場日益國際化。當今,諸如文字處理、電子數(shù)據(jù)表、電子郵 件等的常用軟件應用程序可在不同國家使用。使軟件應用程序可在不同國家使用通常使創(chuàng)建帶有以各種本地語言(與計算機語言不同)呈現(xiàn)的相應用戶界面以及諸如 錯誤消息的其它人類可讀文本的軟件應用程序成為必要。為了增加這些軟件應用程 序的市場份額和市場價值,這種本地化軟件應用程序的創(chuàng)建是必要的。包括本地語 言在軟件應用程序的用戶界面,諸如命令界面、菜單、消息、狀態(tài)信息、標簽、計 算結(jié)果等等中是具有主要意義的。對采用不同本地語言的軟件應用程序的需要受到 許多因素的驅(qū)動,包括使用不同語言且計算機日益成為日常工作和生活的一部分的 國家的數(shù)量增多,使用具有需要自然語言交互而非使用會計或數(shù)學符號的技術符號 交互的軟件應用程序(諸如文字處理之類的辦公軟件應用程序)的非技術領域的數(shù) 量增大,以及以自己的本地語言與軟件應用程序進行交互的用戶需求。本領域中用 于標識以不同的本地語言創(chuàng)建軟件應用程序的過程的通用術語是"本地化 (localization ),,。除了人類可讀文本之外,可能還必需對諸如圖標、色彩和形狀的人類可視圖 形組件以及人類可聽聞的聲音進行本地化,以解決文化敏感性和背景。例如,在某 些亞洲文化中,紅色代表財富和繁榮,而在大多數(shù)西方文化中,紅色代表危險或警 告。所以,如果圖形用戶界面(GUI)中的對話框的符號或背景以紅色顯示,則這 對來自不同文化的用戶具有不同的混雜內(nèi)涵。因此,本地化進程不止是將文本翻譯 成不同語言,它包括其它符號、色彩和聲音等的本地化。對本地化軟件應用程序的需求在這些軟件應用程序的開發(fā)和維護過程中產(chǎn)生 許多問題。本地化軟件應用程序的開發(fā)和維護需要適當?shù)拈_發(fā)工具和開發(fā)環(huán)境,用 于處理和本地化各種人類可讀和人類可視的軟件組件。此外,軟件應用程序的本地 化可由多個組織完成,每個組織包括多個部門,且每個部門執(zhí)行本地化進程的不同 部分。當前可用的開發(fā)和組織環(huán)境的主要缺點之一是開發(fā)工具和環(huán)境所使用的數(shù)據(jù) 模型的可擴展性和靈活性有限。例如,開發(fā)工具和環(huán)境所使用的某些數(shù)據(jù)是二進制格式的,這使得數(shù)據(jù)的閱讀、編輯、共享和操縱十分困難。需要一種數(shù)據(jù)格式來提供跨不同組織和開發(fā)工具的一致性、可擴展性和靈活 性。此外,需要用于訪問和操縱這些數(shù)據(jù)的標準功能和數(shù)據(jù)接口方法。概述提供本概述是為了以簡化形式引入概念精選,這些概念將在以下詳細描述中 得到進一步描述。本概述不旨在標識要求保護主題的關鍵特征,也不旨在用于幫助 確定要求保護主題的范圍。描述一種方法、系統(tǒng)以及包括用于本地化包含在軟件程序中的數(shù)據(jù)的計算機 可讀組件的計算機可讀介質(zhì)。計算機可讀組件包括由軟件數(shù)據(jù)模式定義的數(shù)據(jù)元; 特性庫數(shù)據(jù)元,用于存儲關于數(shù)據(jù)元的多個數(shù)據(jù)特性;以及自有注釋數(shù)據(jù)元,包括 與包含在軟件程序中的數(shù)據(jù)的本地化以及具有創(chuàng)建、訪問和操縱自有注釋數(shù)據(jù)元的 許可的所有者有關的信息。還描述了一種方法、系統(tǒng)以及包括用于本地化包含在軟件程序中的數(shù)據(jù)的計 算機可讀組件集合的計算機可讀介質(zhì)。計算機可讀組件集合包括由軟件數(shù)據(jù)模式 定義的數(shù)據(jù)元;特性庫數(shù)據(jù)元,用于存儲關于數(shù)據(jù)元的多個數(shù)據(jù)特性;本地化數(shù)據(jù) 元的線性列表,可用于將計算機可讀組件集合分割成多個子集,分開操縱多個子集 中的數(shù)據(jù)元以及將多個子集重新合并成單個計算機可讀組件集合;以及自有注釋數(shù) 據(jù)元,包括與包含在軟件程序中的數(shù)據(jù)的本地化以及具有創(chuàng)建、訪問和操縱自有注 釋數(shù)據(jù)元的許可的所有者有關的信息。進一步描述了一種方法、系統(tǒng)以及包括存儲其上的用于本地化軟件程序的軟 件對象集合的計算機可讀介質(zhì)。軟件對象集合包括包含在每個軟件對象中的數(shù)據(jù) 和指令;本地化項目對象,包括本地化數(shù)據(jù)和以下中的至少一個包含其它本地化 項目對象列表的本地化項目列表對象;至少一個注釋對象,包括關于軟件程序本地 化的信息;串數(shù)據(jù)對象,用于存儲計算機文本信息;以及二進制數(shù)據(jù)對象,用于存 儲二進制信息,其中每個軟件對象對應于由軟件數(shù)據(jù)模式定義的數(shù)據(jù)結(jié)構(gòu),且其中 每個軟件對象用于訪問和操縱存儲在由軟件數(shù)據(jù)模式定義的相應數(shù)據(jù)結(jié)構(gòu)中的數(shù) 據(jù)。
通過結(jié)合附圖參考以下詳細描述,本發(fā)明的以上諸方面以及許多附加優(yōu)點變得更容易領會和更好地理解,在附圖中 圖1是一示例性本地化進程的示意圖; 圖2是示出一示例性本地化數(shù)據(jù)流的示意圖; 圖3是示出另一示例性本地化數(shù)據(jù)流的示意圖;圖4是示出對XML數(shù)據(jù)文件進行示例性文件分割和合并操作的示意圖;圖5A是一示例性特性包的示意圖;圖5B是一示意性布爾XML元素的示意圖;圖5C是一示意性整數(shù)XML元素的示意圖;圖5D是一示意性串XML元素的示意圖;圖5E是一示例性XML串XML元素的示意圖;圖6是帶有源屬性的一示例性注釋數(shù)據(jù)格式的示意圖;圖7是帶有注釋的一示例性本地化項目數(shù)據(jù)格式的框圖;圖8是一示例性自有注釋數(shù)據(jù)格式的示意圖;圖9A是一示例性設置數(shù)據(jù)格式的示意圖;圖9B是一示例性枚舉元素的示意圖;圖9C是一示例性列表元素的示意圖;圖9D是一示例性選項表元素的示意圖;圖10是一示例性本地化XML數(shù)據(jù)格式的示意圖;圖11A是包含在CDATAXML元素中的文本數(shù)據(jù)的一示例性示意圖;圖11B是包含在CDATA XML元素中包括括號字符的文本數(shù)據(jù)的一示例性示意圖;圖12是本地化模式與對應對象模型的一示例性關系的框圖;圖13A是帶有返回指針的一示例性父對象和子對象的框圖;圖13B是帶有返回指針和文件指針的一示例性父對象和子對象的框圖;圖14是帶有外部定制文化信息的一示例性對象模型的示意圖;圖15是部分加載數(shù)據(jù)的一示例性方法的功能流程圖;圖16是用回調(diào)功能細化數(shù)據(jù)加載的一示例性方法的功能流程圖;圖17A是部分保存數(shù)據(jù)的一示例性方法的功能流程圖;圖17B是合并數(shù)據(jù)保存的一示例性方法的功能流程圖;圖18是細化地存儲數(shù)據(jù)的一示例性方法的功能流程圖;圖19是一示例性本地化對象模型的示意圖;圖20是創(chuàng)建和提供本地化數(shù)據(jù)文件的一示例性方法的功能流程圖; 圖21是向本地化項目添加注釋的一示例性方法的功能流程圖; 圖22是文件剝離的一示例性方法的功能流程圖。詳細描述描述了一種用于定義標準可擴展本地化數(shù)據(jù)以及用于訪問和操縱數(shù)據(jù)的對象 模型的系統(tǒng)和方法。雖然該系統(tǒng)和方法非常適用于本地化進程,但是該系統(tǒng)和方法 可在其它軟件環(huán)境中使用,其中涉及共享同一底層數(shù)據(jù)的多個開發(fā)工具和組織。因 此,應該理解,本發(fā)明不應被解讀為限制于在本文所述的示例性實施方式中的應用, 并且這些示例性實施方式不應被解讀為是限制性的。圖1是一示例性本地化進程100的示意圖。示例性本地化進程包括具有多個 不同階段的操作循環(huán)。這些階段包括開發(fā)階段102、本地化階段104、翻譯階段106 以及構(gòu)建階段108。本領域技術人員將會意識到,操作循環(huán)階段可包括比在本示例 實施方式中描述的更少或更多的階段。例如,可將某些階段合并以產(chǎn)生更少的階段 或者進一步分解以產(chǎn)生更多的階段。在開發(fā)階段102中,軟件應用程序(軟件應用 程序)的開發(fā)工程師開發(fā)軟件代碼和用戶界面(UI)。 UI可包括文本、可視和可聽 聞組件。例如,開發(fā)工程師為軟件應用程序編寫和編譯代碼。代碼可采用諸如C、 C++、 C弁等多種可用編程語言中的任一種來編寫,并且包括源代碼文件、報頭文件 和資源文件。資源文件通常包含可視和其它UI元素,諸如位圖。開發(fā)工程師還可 在這些文件中諸如資源文件的某些文件中包含注釋。注釋包括關于代碼或UI元素、 以及對在本地化軟件應用程序的開發(fā)過程中使用的諸如各種軟件編譯器、管理工具 和構(gòu)建工具之類的軟件工具的指令的評論。軟件工程師將包括已編譯代碼和資源文 件的文件集合傳遞到本地化階段104,在此本地化工程師繼續(xù)進行本地化進程。本 地化工程師向這些文件添加更多的注釋,這可應用于所有目標語言和文化。然后, 這些文件被傳遞到翻譯階段106,在此針對每種特定語言對軟件應用程序進行翻 譯。最終,這些文件被傳遞到構(gòu)建階段108,在此構(gòu)建文件以對多種語言中的每一 種產(chǎn)生可執(zhí)行軟件應用程序文件。圖2是示出從開發(fā)階段102到本地化階段104的一示例性本地化數(shù)據(jù)流200 的示意圖。本地化解析器工具210用于合并多個文件,包括源二進制文件204、注 釋文件206、和設置文件208,并且產(chǎn)生輸出本地化數(shù)據(jù)文件212。源二進制文件 204來自開發(fā)工程師和軟件構(gòu)建實驗室202。本地化文件212在本地化階段104被傳遞到本地化工程214的文件。在一個示例性實施方式中,本地化數(shù)據(jù)文件212 包括來自設置文件208的設置、來自注釋文件206的注釋、以及來自源二進制文件 204的源二進制數(shù)據(jù)。由軟件構(gòu)建實驗室202提供的源二進制文件204包括從采用 諸如英語的原始語言構(gòu)建軟件應用程序源文件過程中得到的二進制數(shù)據(jù)。對嵌入到注釋文件206、源二進制文件204和設置文件208中的注釋加標簽以 表明注釋的所有者和來源。例如,可用"DEV"對來自開發(fā)工程師的注釋加標簽, 以表明由該標簽指示的注釋來源。在本地化進程中使用的諸如注釋提取器工具的各 種軟件工具也可以向軟件應用程序文件添加注釋。例如,注釋提取器工具可用"RCCX"對由注釋提取器工具擁有的注釋加標簽。如果在注釋提取器工具所操作 的輸入文件中不存在注釋,則注釋提取器工具可以不產(chǎn)生輸出文件。注釋是大小寫 敏感的,其中小寫和大寫字母定義了不同的單詞,或者注釋不是大小寫敏感的。注 釋還可被啟用或禁用。例如,本地化管理工具可用"LCI"對注釋加標簽,并且可 用于禁用其它DEV和RCCX注釋。軟件應用程序構(gòu)建工具擁有的特定類型注釋中 的一種或多種,這類注釋由代表構(gòu)建工具進程的諸如DEV和RCCX的特定標簽標 識。在一個示例性實施方式中,諸如軟件構(gòu)建工具的工具行為受在配置文件中設定 的參數(shù)的控制。兩種不同類型的文件包含并聲明同一類型注釋中的一個或多個的所有權(quán),如 注釋標簽所定義的。多個文件對同一類型注釋的所有權(quán)聲明會產(chǎn)生沖突。這種所有 權(quán)沖突可通過例如將所有權(quán)賦予最近文件來解決,或者這種沖突可基于預先賦予文 件的所有權(quán)優(yōu)先級來解決。因此,較高優(yōu)先級的文件將對所有權(quán)發(fā)生沖突的注釋類 型具有更好的聲明。也可使用其它類型的沖突解決方案。因此,這些示例應該被解 讀為是示例性而非限制性的。當包含不同類型注釋的多個文件被合并時,如果所有權(quán)發(fā)生沖突則發(fā)出警告 或錯誤消息。如果在注釋合并操作期間遇到有意更改,則發(fā)出表明該情況的信息消 息。例如,當由于自有注釋的最近版本文件可用而忽略該注釋時,可發(fā)出信息消息。 如果注釋無法被禁用,則生成警告消息。類似地,如果并非由一文件或工具擁有的 注釋被禁用,則發(fā)出警告消息。在一個示例性實施方式中,將注釋類型的所有權(quán)從 現(xiàn)有所有者轉(zhuǎn)讓給新的所有者。例如,將DEV類型注釋的所有權(quán)從解析器工具傳 遞到構(gòu)建工具。在一個示例性實施方式中,每個所有權(quán)都具有該所有者所擁有的注 釋類型的所有權(quán)列表。如果將未在所有者的所有權(quán)列表上的新注釋類型賦予該所有 者,則該所有者保留該所有權(quán)并發(fā)出警告消息。在一個示例性實施方式中,如果兩個文件聲明同一注釋的所有權(quán),則發(fā)出錯誤消息。這種所有權(quán)沖突可在本地化進程 的諸如構(gòu)建階段108的后續(xù)階段中得到解決。在一個示例性實施方式中,不包含資 源文件擁有的注釋類型的資源被視為具有空的啟用注釋,并且在注釋合并操作過程 中如此處理。如上所述,在本地化進程中,可向軟件源代碼和本地化文件添加注釋以向本 地化進程中的后續(xù)步驟提供信息和指令。注釋幫助軟件的本地化人員改進質(zhì)量并降 低本地化成本。提供注釋的益處包括信息共享、幫助創(chuàng)建偽構(gòu)建、以及檢驗翻譯完 整性。在一個示例性實施方式中,共享信息包括提供關于串資源的標準本地化指令, 這減少了由這種串資源的不正確本地化所產(chǎn)生的錯誤。串資源包括向軟件用戶呈現(xiàn) 的文本消息,諸如警告。偽構(gòu)建是軟件的臨時測試構(gòu)建(即軟件代碼的編譯),由 測試團隊用來在產(chǎn)品開發(fā)周期的早期找到本地化錯誤,以便計劃實際本地化構(gòu)建的 測試以及降低總體的本地化構(gòu)建成本。通過使用本地化指令和注釋來檢驗翻譯完整 性。通過將本地化人員提供的翻譯與對本地化的限制集進行匹配來檢驗翻譯完整 性。限制集包括對軟件原始語言與對軟件進行本地化所針對的目標語言之間的諸如 詞語和短語的信息進行匹配。在一個示例性實施方式中,使用注釋提取器工具。如上所述,注釋提取器工 具是在一種本地化工具,它在包括待提取注釋的文件上運行并將這些注釋編寫到諸 如本地化數(shù)據(jù)文件的輸出文件。在另一示例性實施方式中,本地化進程中所使用的 每個工具都可生成注釋并對這些注釋加標簽以將該工具標識為注釋的源。工具可用指示不同源的源標簽生成注釋。例如,注釋提取器工具可生成"DEV"注釋。在 這種情形中,在具有相同標簽卻來自不同源的兩個注釋之間可能發(fā)生抵觸。在一個 實施方式中,注釋蓋寫模型用于禁用抵觸注釋。在處理期間忽略禁用注釋。圖3是示出從本地化階段104和翻譯階段106到構(gòu)建階段108的另一示例性 本地化數(shù)據(jù)流300的示意圖。在本示例中,本地化構(gòu)建器312對源二進制文件204、 本地化數(shù)據(jù)文件121和本地化語言文件310中包含的數(shù)據(jù)進行處理以產(chǎn)生輸出文件 的目標二進制文件314。如上相關于圖2所述,本地化數(shù)據(jù)文件212包括設置從其 它文件中的數(shù)據(jù)結(jié)合的設置、注釋和源數(shù)據(jù)。本地化語言文件310包括由本地化工 程214添加的設置、注釋、源數(shù)據(jù)和翻譯數(shù)據(jù)。本地化構(gòu)建工具312使用源二進制 文件204、本地化數(shù)據(jù)文件212和本地化語言文件310作為輸入文件并產(chǎn)生目標語 言的目標二進制文件314。目標二進制文件314的創(chuàng)建是最終的本地化軟件應用程 序產(chǎn)品,并且是本地化進程的主要目的。以上描述的工具和進程依賴于一致的通用數(shù)據(jù)格式,這些工具基于該格式以 標準化方式集成和處理數(shù)據(jù)。在一個示例性實施方式中,本地化可擴展標記語言(XML)模式用于定義一致的數(shù)據(jù)格式,以供上述各種本地化工具和相關文件使 用。本地化XML模式提供允許不同小組和組織開發(fā)處理特定任務的軟件工具的可 擴展XML格式。本地化XML模式還允許開發(fā)可在多個組織之間共享的工具和數(shù) 據(jù),進而促進小組間合作。例如,本地化解析工具210、本地化構(gòu)建工具312和本 地化管理工具可在本地化進程中對不同的文件使用和共享同一數(shù)據(jù)格式。在一個示 例性實施方式中,本地化XML模式還可以是可擴展的。本地XML模式的可擴展 性允許其它各方開發(fā)帶有新特征的新工具而無需更改數(shù)據(jù)格式。圖4是示出基于可擴展本地化XML模式分別對本地化XML數(shù)據(jù)文件404進 行示例性文件分割和合并操作400和402 (與注釋合并操作不同)的示意圖。在本 示例性實施方式中,使用文件分割操作400將本地化XML數(shù)據(jù)文件404分割成多 個部分數(shù)據(jù)文件406。部分數(shù)據(jù)文件406可由多個組織或并行處理軟件工具并行使 用,以便獨立于其它部分數(shù)據(jù)文件406處理每個部分數(shù)據(jù)文件406。例如,開發(fā)多 個軟件工具的數(shù)據(jù)文件的多個第三方中的每一個可分別使用與由多個第三方中的 該方開發(fā)的軟件工具相關的一個部分數(shù)據(jù)文件。作為另一示例,將同一軟件應用程 序翻譯成多種語言的多個組織可使用由文件分割操作400創(chuàng)建的適當部分數(shù)據(jù)文 件406來創(chuàng)建已翻譯版的軟件應用程序資源。當多個組織完成部分數(shù)據(jù)文件406 的處理時,使用文件合并操作402將部分數(shù)據(jù)文件406合并成單個本地化XML數(shù) 據(jù)文件408。本地XML數(shù)據(jù)文件404包括指定本地化信息的XML元素。包含在本地化 XML數(shù)據(jù)文件404中的這些元素之一是特性包。圖5A-5E示出特性包和相應XML 元素的示例性實施方式。圖5A是一示例性特性包數(shù)據(jù)結(jié)構(gòu)500的示意圖。特性包 502是用于存儲任意數(shù)量特性的數(shù)據(jù)容器。在一個示例性實施方式中,每個復雜數(shù) 據(jù)類型都與至少一個特性包相關聯(lián)。復雜數(shù)據(jù)類型是包含其它數(shù)據(jù)類型的數(shù)據(jù)類 型。例如,包含其它XML元素的XML元素是復雜數(shù)據(jù)類型。在一個示例性實施 方式中,使用"名稱"屬性定義的唯一名稱和值被賦予該特性。值必須是由本地化 XML模式支持的數(shù)據(jù)類型。在本地化XML模式中定義的每個復雜數(shù)據(jù)類型包括 存儲由本地化XML模式的使用者要求的任意數(shù)量數(shù)據(jù)的特性包元素。圖5A所示 的示例性特性包502包括布爾數(shù)據(jù)類型504、整數(shù)數(shù)據(jù)類型506、串數(shù)據(jù)類型508 和XML數(shù)據(jù)類型510。圖5B是一示例性布爾XML元素522的示意圖。布爾XML元素522包括屬 性列表524。 XML中的數(shù)據(jù)類型屬性用于表示關于數(shù)據(jù)類型的信息,諸如數(shù)據(jù)類 型的名稱和值。屬性列表524中包含的屬性之一是名稱526。在一個示例性實施方 式中,名稱屬性526是a數(shù)字串。值528是布爾XML元素522的另一屬性。值528 表示布爾XML元素522的邏輯值。如本領域己知的,邏輯值包括真和假兩種邏輯 狀態(tài)值。圖5C是一示例性整數(shù)XML元素542的示意圖。整數(shù)XML元素542包括屬 性列表544。屬性列表544中包含的屬性之一是名稱546。在一個示例性實施方式 中,名稱屬性546是a數(shù)字串。值548是整數(shù)XML元素542的另一屬性。值548 表示整數(shù)XML元素542的整數(shù)值。圖5D是一示例性串XML元素562的示意圖。串XML元素562包括屬性列 表564。屬性列表564中包含的屬性之一是名稱566。在一個示例性實施方式中, 名稱屬性566是a數(shù)字串。值568是串XML元素562的另一屬性。值568包括含 有a數(shù)字以及其它字符的字符串,由串XML元素562表示。圖5E是一示例性XML串XML元素582的示意圖。XML串XML元素582 表示任何有效的XML語句。XML元素582包括屬性列表584。屬性列表584包含 名稱屬性586。在一個示例性實施方式中,名稱屬性586是a數(shù)字串。屬性列表584 還包括任何XML語句屬性588,包括任何有效的XML語句。本領域技術人員將會意識到,屬性包元素502的其它變體也是有可能的。例 如,屬性包元素502可包括一類數(shù)據(jù)元,諸如"任何(Any)"元素(未在以上圖 中示出),其中任何(Any)元素包括名稱屬性、類型屬性和值屬性。在這種示例 性實施方式中,類型屬性指定如何解釋值屬性。例如,類型可以是"Unsigned—Integer (未賦值整數(shù))",且值可以是"15"。圖6是帶有源屬性的一示例性注釋數(shù)據(jù)格式600的示意圖。在一個示例性實 施方式中,注釋元素603包括為人類操作員提供有關本地化進程信息的自然語言文 本以及向處理注釋文件206和本地化XML數(shù)據(jù)文件408的人類操作員和軟件工具 提供作為指令的預定文本串。圖6所示的注釋元素602包括屬性列表604。在一個 示例性實施方式中,屬性列表604包括名稱屬性606、啟用屬性608、禾D SRC (對 于源)屬性610。名稱屬性606用于通過名稱指代注釋。啟用屬性608用作指示符 以指示注釋602是啟用還是禁用。SRC屬性610指示注釋的源,即SRC屬性610 是標識注釋的所有者和源的標簽。如上參照圖2所述,不同類型的注釋由不同所有者擁有。注釋所有者可包括有關與注釋所有者的責任范圍相關的本地化進程的指令 和其它信息。例如,軟件開發(fā)者可通過注釋形式提供一般信息和指令。對由特定所 有者作出的注釋加標簽,以標識該注釋的所有者。在一個示例性實施方式中,由每 個所有者作出的注釋僅由這些注釋所屬的所有者來操縱。在另一示例性實施方式中,可將注釋的所有權(quán)從一個所有者傳遞到另一個所有者。例如,可以允許標有"DEV"(即開發(fā)者,如上所述)的注釋由注釋提取器工具擁有,該工具通常只擁 有標為"RCCX"的注釋。在一示例性實施方式中,注釋名稱和注釋可以是大小寫 不敏感的。注釋還可被啟用和禁用。如上所述,在處理過程中忽略禁用的注釋。圖7是帶有注釋的一示例性本地化項目數(shù)據(jù)格式700的框圖。在一個示例性 實施方式中,本地化項目702包括屬性704。屬性704包括項目類型706和項目ID 708。本地化項目702還包括串元素710、 二進制元素712和注釋714。本地化項目 702是可被翻譯或以其它方式適于本地文化和語言的正進行本地化的軟件的任何 部分或源。例如,文本消息或圖標是本地化項目702。項目類型706是指定本地化 項目702的類型的屬性。例如,項目類型706可指示特定本地化項目702是文本消 息或色彩。項目ID 708用作本地化項目702的標識符。本地化項目702可任選地 包括串710、 二進制數(shù)據(jù)712和注釋714,這取決于項目類型706。例如,如果項 目類型706指示本地化項目702是文本串,則本地化項目702可包括指定在本地化 中使用的默認字體的另一元素,諸如特性元素(未在圖中示出)。在一個示例性實 施方式中,本地化項目702中包含若干類型的串710和二進制數(shù)據(jù)712。例如,本 地化項目702中可以包括用于源語言、目標語言和其它參考語言的串和二進制數(shù) 據(jù)。參考語言可用于為本地化項目702從源語言向目標語言的翻譯提供附加信息。 在一個示例性實施方式中,父本地化項目702包括一起構(gòu)成本地化項目702的分層 結(jié)構(gòu)的零個或更多其它子本地化項目702 (未示出)。子本地化項目702通過指針 或等效軟件技術的方式包括在父本地化項目702中。圖8是一示例性自有注釋數(shù)據(jù)格式806的示意圖。所示示例性自有注釋元素 802包括多個注釋元素602,每個元素包括屬性804。屬性804包括名稱屬性806。圖9A-9D示出設置元素902和相應XML元素的示例性實施方式。圖9A是一 示例性設置數(shù)據(jù)格式的示意圖。設置元素902包括含有名稱906的屬性904。設置 元素卯2還包括多個設置908項目。示例性設置1包括屬性910。屬性910包括設 置1的名稱912。示例性設置1還包括布爾元素914、整數(shù)元素916、枚舉元素918、 串元素920、列表元素922和選項表元素924。以下進一步描述設置908的每個元素。設置元素902指定本地化數(shù)據(jù)文件的當前設置。圖9B是一示例性枚舉元素942的示意圖。示例性枚舉元素942包括含有名稱 946和值948的屬性944。名稱屬性946通過名稱標識枚舉元素942。值屬性948 包括由枚舉942表示的枚舉的值。圖9C是一示例性列表元素962的示意圖。示例性列表元素962包括含有名稱 966和多個項目元素968的屬性964。名稱屬性966通過名稱標識列表元素962。 項目元素968各自表示列表962的一個條目,并且可包括許多屬性(未在本圖中示 出),諸如項目標識符、序列號、源文件名稱等。此外,項目968可包括其它元素 (未在本圖中示出),諸如串元素、二進制元素、注釋元素等。圖9D是一示例性選項表元素982的示意圖。示例性選項表元素892包括含有 名稱986和值屬性988的屬性984。示例性選項表元素982還包括多個項目元素990。 名稱屬性986通過名稱標識列表元素982。項目元素990各自表示列表982的一個 條目,并且可包括許多屬性(未在本圖中示出),諸如項目標識符、序列號、源文 件名稱等。此外,項目990可包括其它元素(未在本圖中示出),諸如串元素、二 進制元素、注釋元素等。本領域技術人員將會意識到,數(shù)據(jù)元的其它變型也是可能的。例如,數(shù)據(jù)元 可包括諸如"任何(Any)"元素(未在上圖中示出)的一類數(shù)據(jù)元,其中任何(Any) 元素包括名稱屬性、類型屬性和值屬性。在這種示例性實施方式中,類型屬性指定 應該如何解讀值屬性。例如,類型可以是"Unsigned—Integer (未賦值整數(shù))"以及 值可以是"15"。圖10是一示例性本地化XML數(shù)據(jù)格式1002的示意圖。本地化XML數(shù)據(jù)格 式用于定義在本地化進程中使用的本地化數(shù)據(jù)的總的格式。示例性本地化XML數(shù) 據(jù)元1002包括屬性1004和任選元素,諸如如上所述的設置1016、特性包1018、 自有注釋1020和本地化項目1022。屬性1004包括名稱屬性1006以及其它任選屬 性,諸如解析器IDIOIO、描述1012、源1012和目標1014。如上參照圖7所述, 本地化項目1022可包括共同構(gòu)成本地化項目702的分層結(jié)構(gòu)的零個或更多子本地 化項目1022 (未示出)。圖IIA是包含在CDATAXML元素1102中的文本數(shù)據(jù)的一示例性示意圖。如 本領域中已知的,CDATA XML元素1102用于表示本地化數(shù)據(jù)文件中的自由文本 1104,類似于串。包含在CDATA XML元素1102中的自由文本1104通過在最后 一個自由文本1104字符結(jié)束處立即使用閉合雙括號1106來劃定。即,在自由文本1104的結(jié)束處插入閉合雙括號1106,而在自由文本1104的最后一個字符與閉合雙 括號1106之間沒有任何空字符,諸如空白、制表符等。圖IIB是包含在CDATAXML 元素1102a中的含有方括號字符1110的文本數(shù)據(jù)的一示例性示意圖。如果自由文 本1104a包括方括號"]"字符1110,則不能清晰確定自由文本1104a的范圍。當 字符的含義模糊時,即當能以多種方式解釋字符時,轉(zhuǎn)義字符可用于限制字符的解 釋。除其它技術之外可使用轉(zhuǎn)義字符來消除該字符的岐義。在一個示例性實施方式 中,消除方括號"]"的岐義包括在方括號字符1110之前插入諸如空格或制表符符 號的空字符1108,來標識方括號1110是自由文本1104a的一部分且不是閉合雙括 號1106a的一部分。在其它示例性實施方式中,可類似地使用其它特定字符。圖12是本地化XML模式1202和相應對象模型1208的一示例性關系1200的 框圖。對象模型1208包括多個類1206,每個類1206指定對象模型中的軟件對象 的設計。本領域技術人員將會意識到,類是用于以諸如0++ (C加加)、C# (C井 號)和Java的面向?qū)ο笥嬎銠C語言定義軟件對象的抽象對象。此外,本領域技術 人員將會認識到,軟件對象是通過例示類而在計算機存儲器中創(chuàng)建的,即通過分配 存儲器以基于由對應類指定的格式在存儲器中創(chuàng)建物理對象。對象模型1208實質(zhì) 上對本地化XML模式1202中的每個元素1204定義一個類1206。使用對象模型 1208,在軟件應用程序和工具1210中實現(xiàn)本地化XML模式。如上所述,元素1204 定義本地化數(shù)據(jù)格式1212。用于如元素1204所原始定義的用于指定本地化數(shù)據(jù)的 數(shù)據(jù)格式的數(shù)據(jù)接口 1214由對象模型1208中的類1206指定。軟件應用程序和工 具1210使用數(shù)據(jù)接口 1214來對每個數(shù)據(jù)片采用正確格式以正確訪問和操縱本地化 數(shù)據(jù)。軟件應用程序和工具1210還使用功能接口 1216來訪問和操縱本地化數(shù)據(jù)以 配置和執(zhí)行本地化任務。圖13A是帶有返回指針的一示例性父和子對象的框圖。父對象1302是從第一 類例示的軟件對象。子對象1304是從第二類例示的軟件對象,該第二類是在設計 第一和第二類時從第一類導出的。本領域技術人員將會認識到,在諸如C++、 C# 和Java的面向?qū)ο蟮挠嬎銠C語言中,第二類可從第一類導出(即指定)。第二類被 認為是繼承在第一類中包含的成員。類的成員包括函數(shù)、變量、指針和其它類。第 二類可定義在第一類中未定義的附加新成員。在本領域中,通過第二類獲得第一類 的成員的關系稱為繼承。繼承是通常在與運行時(即在軟件執(zhí)行過程中)不同的軟 件開發(fā)過程中的設計時發(fā)生的進程。本領域技術人員公知為包容的面向?qū)ο笳Z言的 另一特性也稱為聚集。當?shù)谝活愂堑诙惖某蓡T時,第一類被認為是包含在第二類中。包容是與繼承不同的對象間關系。本領域中,習慣在繼承和包容關系中使用術 語"父"表示第一類,術語"子"表示第二類。因此,以下討論中將使用父/子的術語。在圖13A所示的示例中,對象模型1208 (圖12)中的子對象1304包括指 向?qū)笇ο?302的返回指針1306。返回指針1306通過在父對象1302與子對象 1304之間提供直接鏈接來增加系統(tǒng)性能,由此可以遍歷對象模型1208中的對象關 系。所有對象使用指針1306維護對其相應父對象的引用。當父對象1302與子對象 1304之間建立關系時,由父對象1302設定反向指針1306。當父對象1302與子對 象1304之間的關系斷開時,將子對象1302設定為指向另一父對象。圖13B是帶有指針和文件指針的一示例性父對象和子對象的框圖。如上所述, 當父對象1322與1324之間建立關系時,父對象1322設定返回指針1326。當父對 象1322與子對象1324之間的關系斷開時,將子對象1322設定為指向另一父對象。 當子對象1324是資源對象時,文件指針1328由子對象1324用來指向資源文件。 如本領域技術人員已知的,資源通常是表示諸如圖標、菜單或位圖的圖像組件的圖 形數(shù)據(jù)對象。資源數(shù)據(jù)包含在根據(jù)已起草的資源規(guī)范使用資源編譯器創(chuàng)建的資源文 件1330中。圖14是帶有外部定制文化信息的一示例性對象模型1402的示意圖。對象模 型1402包括默認的公知定制文化1404。為了本地化到對象模型1402中未默認包 含的語言和文化,用來自外部文件1406的定制文化信息1408增添對象模型1402。 在一個示例性實施方式中,外部文件1406呈現(xiàn)在本地系統(tǒng)中。在另一示例性實施 方式中,外部文件1406位于遠程系統(tǒng)上。在一示例性實施方式中,對定制文化信 息1406進行手動更新。在另一示例性實施方式中,可通過本地化應用程序軟件將 定制文化信息1406寫入文件1406。圖15是部分加載數(shù)據(jù)的一示例性方法1500的功能流程圖。在框1510,客戶 端軟件應用程序打開本地化數(shù)據(jù)文件。如上所述,本地化數(shù)據(jù)文件包括在本地化進 程中由也稱為客戶端軟件應用程序的軟件應用程序工具使用的本地化數(shù)據(jù)。在一個 實施方式中,本地化數(shù)據(jù)文件包括XML元素。本領域技術人員將會意識到,可使 用其它方法和格式來表示軟件應用程序的數(shù)據(jù),因此,本文中有關示例性XML元 素的討論被解讀為是示例性而非限制性的??蛻舳塑浖贸绦蚓哂写_定將哪些 XML元素加載到存儲器中以供處理的內(nèi)部邏輯。例如,只處理用于本地化的文本 信息的客戶端軟件應用程序只需要加載文本相關信息,諸如文本字符的字體和大 小。在框1520,從本地化數(shù)據(jù)文件獲取下一XML元素以加載到存儲器中并進行處理。然后,在框1530,客戶端軟件應用程序判定是否必須加載當前XML元素。如 果當前XML元素被選擇加載,則在框1540,加載當前XML元素,且方法1500 進行到框1550。如果當前XML元素未被選擇加載,則方法1500進行到框1550, 其中方法1500判定在本地化數(shù)據(jù)文件中是否有更多XML元素可用。如果在本地 化數(shù)據(jù)文件中有更多XML元素可用,則方法1500返回到框1520以獲取下一XML 元素。如果在本地化文件中沒有更多的XML元素可用,則方法1500結(jié)束。在一 個示例性實施方式中,客戶端軟件應用程序選擇加載一種通用類型數(shù)據(jù)而不加載其 它通用類型數(shù)據(jù)。例如,處理文本的客戶端設置標志,用于只加載串數(shù)據(jù)而不加載 任何二進制數(shù)據(jù)。在這種情形中,數(shù)據(jù)的選擇在總體級別上進行,從而區(qū)分數(shù)據(jù)類 型以基于所選的一般類型數(shù)據(jù)來加載。圖16是用回調(diào)功能細化數(shù)據(jù)加載的一示例性方法1600的功能流程圖。在一 個實施方式中,客戶端軟件應用程序指定要以細化級別加載的數(shù)據(jù),包括所有類型 的數(shù)據(jù),諸如串數(shù)據(jù)和二進制數(shù)據(jù)。與以上參照圖15討論的在數(shù)據(jù)類型總體級別 上操作的部分數(shù)據(jù)加載不同,細化數(shù)據(jù)加載在所有數(shù)據(jù)類型內(nèi)的精細級別上進行。 在細化加載中,客戶端軟件應用程序根據(jù)加載哪個數(shù)據(jù)元提供具體標準。在一個示 例性實施方式中,客戶端軟件應用程序向?qū)ο竽P?208的功能接口提供回調(diào)功能, 由此從本地化數(shù)據(jù)文件檢索本地化數(shù)據(jù)的對象判定是否加載每個數(shù)據(jù)元?;卣{(diào)功能 使用如客戶端軟件應用程序所定義的用于選擇數(shù)據(jù)的標準。在框1610中,客戶端 軟件應用程序打開本地化數(shù)據(jù)文件。方法1600進行到框1620,其中由客戶端軟件 應用程序從訪問本地化數(shù)據(jù)文件的對象模型1208向?qū)ο筇峁┗卣{(diào)功能。在框1630, 獲取XML數(shù)據(jù)元。該對象使用由客戶端軟件應用程序提供的回調(diào)功能以針對加載 對XML數(shù)據(jù)元進行評估。在框1650,方法1600基于來自回調(diào)功能的結(jié)果判定是 否加載當前XML數(shù)據(jù)元。如果當前XML數(shù)據(jù)元被選擇用于加載,則方法1600 進行到框1660,其中XML數(shù)據(jù)元被加載到存儲器中,且方法進行到框1670。如 果當前XML未被選擇用于加載,則方法1600進行到框1670。在框1670,方法1600 判定在本地化數(shù)據(jù)文件中是否有更多的XML數(shù)據(jù)元可用。如果有更多的XML數(shù) 據(jù)元可用,則方法1600返回框1630以獲取下一 XML數(shù)據(jù)元。否則,方法1600 結(jié)束。圖17A是數(shù)據(jù)部分保存的一示例性方法1700的功能流程圖。部分保存方法 1700是部分加載方法1500的補充。可以要求在存儲器中具有準備保存到數(shù)據(jù)文件 中的本地化數(shù)據(jù)的客戶端軟件應用程序只保存該數(shù)據(jù)的一部分。部分保存方法程序指定應該將哪些數(shù)據(jù)保存到數(shù)據(jù)文件。例如,可以要求客戶端軟件應用程序只保存串數(shù)據(jù)。客戶端軟件應用程序可指定只將串數(shù)據(jù)保存到數(shù)據(jù)文件中。在框1710,客戶端軟件應用程序指定要保存到數(shù)據(jù)文件中的數(shù) 據(jù)類型。在框1720,將由客戶端軟件應用程序所指定類型的數(shù)據(jù)保存到數(shù)據(jù)文件 中。在框1730,關閉數(shù)據(jù)文件,方法1700結(jié)束。圖17B是合并數(shù)據(jù)保存的一示例性方法1750的功能流程圖。無論通過上述的 部分數(shù)據(jù)加載還是細化數(shù)據(jù)加載,客戶端軟件應用程序只在存儲器中加載數(shù)據(jù)的一 部分。如果客戶端軟件應用程序的存儲器中的數(shù)據(jù)被如此存儲,則最初未加載到存 儲器中的所有數(shù)據(jù)將丟失并且未記錄在輸出數(shù)據(jù)文件中。為了防止數(shù)據(jù)丟失,方法 1750將客戶端軟件應用程序存儲器中的數(shù)據(jù)與來自最初未加載到客戶端軟件應用 程序存儲器中的數(shù)據(jù)文件合并。為了保存由客戶端軟件應用程序?qū)σ鸭虞d數(shù)據(jù)進行 的修改,保存對數(shù)據(jù)文件和客戶端軟件應用程序存儲器通用的該數(shù)據(jù)的存儲器副 本。在框1760,打開客戶端軟件應用程序加載本地化數(shù)據(jù)所使用的原始數(shù)據(jù)文件。 在框1770,從該數(shù)據(jù)文件獲取下一可用XML元素。在框1780,方法1750判定客 戶端軟件應用程序的存儲器中是否也存在從該數(shù)據(jù)文件獲取的當前XML元素。如 果存儲器中存在當前XML元素,則在框1785,將XML元素的存儲器副本保存到 該數(shù)據(jù)文件中。然后,方法1750進行到框1790。在框1780,如果存儲器中不存在 當前XML元素,則當前XML元素最初未被加載,并且未被修改,因此無需再次 在數(shù)據(jù)文件中保存。在這種情形中,方法1750進行到框1790。在框1790,方法 1750判定數(shù)據(jù)文件中是否還有更多的XML元素。如果還有更多的XML元素,則 方法1750進行到框1770以獲取下一 XML元素。否則,方法1750結(jié)束。圖18是細化數(shù)據(jù)保存的一示例性方法1800的功能流程圖。細化保存方法1800 是細化數(shù)據(jù)加載方法1600的補充。類似于細化加載方法1600,細化保存方法1800 指定每個數(shù)據(jù)對象是否必須被保存。在一個實施方式中,客戶端軟件應用程序指定 要在精細細化級別保存的數(shù)據(jù),包括所有類型的數(shù)據(jù),諸如串數(shù)據(jù)和二進制數(shù)據(jù)。 與以上參照圖17A所述的在數(shù)據(jù)類型的總體級別上操作的數(shù)據(jù)部分保存不同,數(shù) 據(jù)的細化保存在所有數(shù)據(jù)類型內(nèi)的精細級別上進行。在細化保存中,客戶端軟件應 用程序根據(jù)保存哪個數(shù)據(jù)對象指定具體標準。在一個示例性實施方式中,客戶端軟 件應用程序向?qū)ο竽P?208的功能接口提供回調(diào)功能,由此將本地化數(shù)據(jù)保存到 本地化數(shù)據(jù)文件的對象判定是否保存每個數(shù)據(jù)元?;卣{(diào)功能使用如客戶端軟件應用 程序所定義的數(shù)據(jù)選擇標準。方法1800進行到框1810,其中由客戶端軟件應用程序從訪問本地化數(shù)據(jù)文件的對象模型1208向?qū)ο筇峁┗卣{(diào)功能。在框1820,從客 戶端軟件應用程序存儲器獲取XML數(shù)據(jù)元。在框1830,該對象使用由客戶端軟件 應用程序提供的回調(diào)功能來針對保存對XML數(shù)據(jù)對象進行評估。在框1840,方法 1800基于來自回調(diào)功能的結(jié)果判定是否保存當前XML數(shù)據(jù)元。如果當前XML數(shù) 據(jù)元被選擇為保存,則方法1800進行到框1850,其中XML數(shù)據(jù)元被保存到數(shù)據(jù) 文件,且該方法進行到框1860。如果當前XML未被選擇為保存,則方法1800進 行到框1860。在框1860,方法1800判定在存儲器中是否有更多的XML數(shù)據(jù)元可 用。如果有更多的XML數(shù)據(jù)元可用,則方法1800返回框1820以獲取下一 XML 數(shù)據(jù)元。否則,方法1800結(jié)束。圖19是一示例性本地化對象模型1900的示意圖。如上所述,本領域技術人 員應該認識到,對象模型是軟件系統(tǒng)中不同對象類型或類(對象的抽象表示)的關 系的抽象表示。對象模型可用于表示對象之間的繼承關系以及包容關系。對象模型 1900提供用于對象和關系的類型規(guī)范,該規(guī)范允許相對于基于本地化XML模式 1202創(chuàng)建的本地化數(shù)據(jù)文件中數(shù)據(jù)的基本輸入和輸出功能。如上所述,本領域技 術人員將會意識到對象模型1900可應用于其它類型的數(shù)據(jù)模式,并且示例性本地 化XML模式的討論不應被解讀為對本發(fā)明的限制。對象模型1900允許本地化數(shù) 據(jù)文件的分割和合并。此外,對象模型1900允許添加有關注釋的源和描述的信息。 對象模型1900還允許包括已引用的翻譯以在本地化進程中提供幫助。如參照圖12 所述的,對象模型1900緊密對應于本地化XML模式1202。即,對象模型1900 中的每個類對應于本地化XML模式1202中的一個元素。因此,本地化文件1902 是表示基于本地化XML模式1202的本地化數(shù)據(jù)文件的類。本地化文件類1902包 括文化類1904和本地化項目列表類1906。本地化項目列表類1906包括在本地化 項目類1908中。在一個實施方式中,本地化項目列表類1906是線性列表,與分層 結(jié)構(gòu)不同,它很容易允許將本地化數(shù)據(jù)文件404分割成部分數(shù)據(jù)文件406并將部分 數(shù)據(jù)文件406合并回本地數(shù)據(jù)文件408。本地化項目類1908是對象模型1900中對 象模型l卯O的大多數(shù)其它類所相關的中心類。在一個實施方式中,本地化項目類 1908包括父資源、本地化文件、資源ID、子本地化項目(如下描述)的本地化項 目列表(如下描述)、二進制數(shù)據(jù)類(如下描述)、以及各注釋的注釋列表(如下描 述)。本地化項目類1908還包括注釋類1910。在一個實施方式中,注釋類1910是 注釋列表類的一部分。本地化項目類1908還包括串數(shù)據(jù)類1912和二進制數(shù)據(jù)類1914。串數(shù)據(jù)類1912包括串源類1916和串目標類1918。串源數(shù)據(jù)類1916提供原 始串和其它串特性。串目標類1918包括該串的本地化信息。二進制數(shù)據(jù)類1914 包括二進制源類1920和二進制目標1922。 二進制源類1920呈現(xiàn)原始二進制字節(jié) 數(shù)組和其它二進制特性。二進制目標類1922提供二進制狀態(tài)信息。在另一實施方 式中,對象模型1900可以包括在本地化項目類l卯8中包含的諸如顯示信息類和資 源ID類的其它類。在一示例性實施方式中,串數(shù)據(jù)類1912和二進制數(shù)據(jù)類1914 包括串參考類和二進制參考類(未示出)。參考類提供有關參考語言的信息,可用 于為將串和二進制數(shù)據(jù)從源語言翻譯到目標語言提供附加信息。圖20是用于創(chuàng)建和提供本地化數(shù)據(jù)文件的一示例性方法2000的功能流程圖。 在框2010,創(chuàng)建新的本地化數(shù)據(jù)文件。在框2020,向本地化數(shù)據(jù)文件添加本地化 項目。在框2040,方法2000判定是否還有要向本地化數(shù)據(jù)文件添加的更多本地化 項目。如果還有更多本地化項目,則方法2000進行到框2020,其中向本地化數(shù)據(jù) 文件添加本地化項目。否則,方法2000進行到框2060,其中保存本地化數(shù)據(jù)文件。圖21是用于向本地化項目添加注釋的一示例性方法2100的功能流程圖。方 法2100需要來自客戶端軟件應用程序的輸入信息,以標識添加注釋所針對的本地 化項目。如上所述,可在注釋中嵌入與本地化項目相關聯(lián)的用于本地化的指令。在 框2110,打開本地化數(shù)據(jù)文件。在框2120,方法2100驗證嘗試向本地化項目添加 注釋的客戶端軟件應用程序的注釋所有權(quán)。如果該客戶端軟件應用程序不擁有向本 地化項目的注釋類型,則方法2100進行到框2170,其中關閉本地化數(shù)據(jù)。如果客 戶端軟件應用程序擁有該注釋類型,則方法2100進行到框2130,其中創(chuàng)建新的注 釋。在框2140,對所需值設定注釋的名稱和值屬性。在框2150,向本地化項目添 加注釋。方法2100進行到框2160,其中保存該文件。在框2170,關閉該文件,且 方法2100結(jié)束。圖22是用于文件剝離的一示例性方法2200的功能流程圖。在保存數(shù)據(jù)之前, 將必須不被保存到本地化數(shù)據(jù)文件的所有數(shù)據(jù)從客戶端軟件應用程序的存儲器移 除。在一個實施方式中,方法2200移除不包含注釋的所有本地化項目。將二進制 信息和串從所有其它本地化項目移除。在一個實施方式中,使用遞歸方法,它包括 子本地化項目作為輸入。遞歸方法從子本地化項目剝離所有二進制和串信息。來自 對遞歸方法的調(diào)用的"假"返回值表明作為輸入向遞歸方法提供的子本地化項目以 及該子本地化項目的所有子項目不具有注釋,并將該子本地化項目和該子本地化項 目的所有子項目移除。在框2210,訪問子本地化項目。在框2220,方法2200判定該子項目是否包括注釋。如果該子項目包括注釋,則方法2200進行到框2230,其 中丟棄子本地化項目的二進制和串數(shù)據(jù)。如果該子項目不具有注釋,則在框2240 移除該子項目。在框2230,方法2200進行到框2250。在框2240,該方法2200進 行到框2250,其中判定是否還有更多子本地化項目。如果還有更多子本地化項目, 則方法2200進行到框2210,其中訪問下一子本地化項目以進行評估。否則方法2200結(jié)束。雖然示出和描述了本發(fā)明的當前較佳實施方式,但是本領域技術人員應該意 識到,在此可進行各種變化而不背離本發(fā)明的精神和方法。例如,雖然上述系統(tǒng)和 方法針對使用XML模式的本地化數(shù)據(jù),但是可以使用其它數(shù)據(jù)格式規(guī)范。因此, 本發(fā)明不應被解讀為限制于上述示例性實施方式。
權(quán)利要求
1.一種具有用于本地化包含在軟件程序中的數(shù)據(jù)的計算機可讀組件的計算機可讀介質(zhì),所述計算機可讀組件包括由軟件數(shù)據(jù)模式定義的數(shù)據(jù)元;特性庫數(shù)據(jù)元,用于存儲有關所述數(shù)據(jù)元的多個數(shù)據(jù)特性;以及自有注釋數(shù)據(jù)元,包括與包含在軟件程序中的所述數(shù)據(jù)的本地化以及具有創(chuàng)建、訪問和操縱所述自有注釋數(shù)據(jù)元的許可的所有者有關的信息。
2. 如權(quán)利要求1所述的計算機可讀介質(zhì),其特征在于,所述軟件數(shù)據(jù)模式是 可擴展標記語言("XML")模式。
3. 如權(quán)利要求1所述的計算機可讀介質(zhì),其特征在于,所述數(shù)據(jù)元中的至少 兩個被安排成分層結(jié)構(gòu),其中父數(shù)據(jù)元在所述分層結(jié)構(gòu)中的位置比子數(shù)據(jù)元高。
4. 如權(quán)利要求3所述的計算機可讀介質(zhì),其特征在于,所述父和子數(shù)據(jù)元的 每一個包括特性庫數(shù)據(jù)元。
5. 如權(quán)利要求l所述的計算機可讀介質(zhì),其特征在于,所述自有注釋數(shù)據(jù)元 包括針對軟件本地化工具和人類操作員中的至少一個、與所述軟件程序中包含的數(shù) 據(jù)的本地化相關的指令。
6. 如權(quán)利要求1所述的計算機可讀介質(zhì),其特征在于,所述自有注釋數(shù)據(jù)元包括對所述自有注釋數(shù)據(jù)元的描述以及與所述自有注釋數(shù)據(jù)元的所有權(quán)有關的信阜
7. —種具有用于本地化包含在軟件程序中的數(shù)據(jù)的計算機可讀組件集合的計算機可讀介質(zhì),所述計算機可讀組件集合包括 基于軟件數(shù)據(jù)模式而定義的數(shù)據(jù)元;特性庫數(shù)據(jù)元,用于存儲有關所述數(shù)據(jù)元的多個數(shù)據(jù)特性; 本地化數(shù)據(jù)元的線性列表,可用于將所述計算機可讀組件集合分割成多個子集,分開操縱所述多個子集中的數(shù)據(jù)元,以及將所述多個子集重新合并回單個計算機可讀組件集合;以及自有注釋數(shù)據(jù)元,包括與包含在軟件程序中的所述數(shù)據(jù)的本地化以及具有創(chuàng)建、訪問和操縱所述自有注釋數(shù)據(jù)元的許可的所有者有關的信息。
8. 如權(quán)利要求7所述的計算機可讀介質(zhì),其特征在于,所述軟件數(shù)據(jù)模式是可擴展標記語言("XML")模式。
9. 如權(quán)利要求7所述的計算機可讀介質(zhì),其特征在于,所述數(shù)據(jù)元中的至少 兩個被安排成分層結(jié)構(gòu),其中父數(shù)據(jù)元在所述分層結(jié)構(gòu)中的位置比子數(shù)據(jù)元高。
10. 如權(quán)利要求9所述的計算機可讀介質(zhì),其特征在于,所述父和子數(shù)據(jù)元 的每一個包括特性庫數(shù)據(jù)元。
11. 如權(quán)利要求7所述的計算機可讀介質(zhì),其特征在于,所述自有注釋數(shù)據(jù) 元包括針對軟件本地化工具和人類操作員中的至少一個、與所述軟件程序中包含的 數(shù)據(jù)的本地化相關的指令。
12. 如權(quán)利要求7所述的計算機可讀介質(zhì),其特征在于,所述自有注釋數(shù)據(jù) 元包括對所述自有注釋數(shù)據(jù)元的描述以及與所述自有注釋數(shù)據(jù)元的所有權(quán)有關的f曰息。
13. 如權(quán)利要求7所述的計算機可讀介質(zhì),其特征在于,所述自有注釋數(shù)據(jù) 元包括含有至少一個名稱和相應值數(shù)據(jù)對的信息。
14, 一種具有存儲其上的用于軟件程序本地化的軟件對象集合的計算機可讀 介質(zhì),所述軟件對象集合包括a) 包含在每個軟件對象中的數(shù)據(jù)和指令;b) 本地化項目對象,包括本地化數(shù)據(jù)和以下中的至少一個i) 本地化項目列表對象,包含其它本地化項目對象的列表;ii) 注釋對象,包括有關軟件程序本地化的信息;iii) 串數(shù)據(jù)對象,用于存儲計算機文本信息;以及iv) 二進制數(shù)據(jù)對象,用于存儲二進制信息; 其中每個軟件對象對應于由軟件數(shù)據(jù)模式定義的數(shù)據(jù)結(jié)構(gòu),且每個軟件對象用于訪問和操縱存儲在由所述軟件數(shù)據(jù)模式定義的相應數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)。
15. 如權(quán)利要求14所述的計算機可讀介質(zhì),其特征在于,所述軟件對象的每 一個包含采用面向?qū)ο笥嬎銠C語言的軟件類。
16. 如權(quán)利要求14所述的計算機可讀介質(zhì),其特征在于,所述軟件數(shù)據(jù)模式 是可擴展標記語言("XML")模式。
17. 如權(quán)利要求14所述的計算機可讀介質(zhì),其特征在于,所述軟件對象中的 至少一個讀取存儲在所述相應數(shù)據(jù)結(jié)構(gòu)中的預選數(shù)據(jù)。
18. 如權(quán)利要求14所述的計算機可讀介質(zhì),其特征在于,所述軟件對象中的 至少一個將預選數(shù)據(jù)存儲在所述對應數(shù)據(jù)結(jié)構(gòu)中。
19. 如權(quán)利要求14所述的計算機可讀介質(zhì),其特征在于,所述軟件對象中的 至少兩個作為父子彼此相關,其中子對象或是包含在父對象中或是從所述父對象導 出。
20. 如權(quán)利要求19所述的計算機可讀介質(zhì),其特征在于,所述子對象包括指 向所述父對象的返回指針。
全文摘要
描述一種方法、設備以及包括用于本地化包含在軟件程序中的數(shù)據(jù)的計算機可讀組件的計算機可讀介質(zhì)。計算機可讀組件包括由軟件數(shù)據(jù)模式定義的數(shù)據(jù)元;特性庫數(shù)據(jù)元,用于存儲關于數(shù)據(jù)元的多個數(shù)據(jù)特性;以及自有注釋數(shù)據(jù)元,包括與包含在軟件程序中的數(shù)據(jù)的本地化以及具有創(chuàng)建、訪問和操縱自有注釋數(shù)據(jù)元的許可的所有者有關的信息。
文檔編號G06F9/44GK101263454SQ200680033200
公開日2008年9月10日 申請日期2006年9月12日 優(yōu)先權(quán)日2005年9月12日
發(fā)明者D·阿斯, J·A·尼爾森, J·A·科帕納, J·M·瑪?shù)? L·E·伯德澤斯基, P·A·托姆普森, R·V·帕瑪瑞斯, S·P·杰德, T·法瑞爾 申請人:微軟公司