專(zhuān)利名稱(chēng):在數(shù)據(jù)語(yǔ)言中管理多種語(yǔ)言的制作方法
在數(shù)據(jù)語(yǔ)言中管理多種語(yǔ)言 相關(guān)申請(qǐng)的交叉引用本申請(qǐng)要求在2005年5月31日提交的美國(guó)臨時(shí)申請(qǐng)S/N. 60/686,180的權(quán)益, 由此其整體被援引納入于此。發(fā)明背景發(fā)明領(lǐng)域本發(fā)明一般涉及軟件應(yīng)用的變量處理。本發(fā)明尤其涉及以公用變量來(lái)創(chuàng)建文 件結(jié)構(gòu)以及進(jìn)行資源處理。 相關(guān)技術(shù)說(shuō)明數(shù)據(jù)語(yǔ)言正成為一種越來(lái)越盛行的編程方法。數(shù)據(jù)語(yǔ)言包括標(biāo)記語(yǔ)言,諸如 基于XML的那些語(yǔ)言,包括HTML、 TRIGML (由高通公司所有)。數(shù)據(jù)驅(qū)動(dòng)語(yǔ) 言被廣泛地用在編程基于網(wǎng)頁(yè)的應(yīng)用中,但是并不限于此?;赬ML的語(yǔ)言的例 子還包括計(jì)帳和交易處理應(yīng)用。使用數(shù)據(jù)語(yǔ)言時(shí)在幾種情況下會(huì)產(chǎn)生困難。例如,在開(kāi)發(fā)用戶(hù)界面(UI)曰寸, 根據(jù)在設(shè)備上運(yùn)行的應(yīng)用所需的語(yǔ)言來(lái)使該應(yīng)用有多種語(yǔ)言可用將是合乎需要的。 例如,在法國(guó)使用的無(wú)線設(shè)備與在英國(guó)使用的無(wú)線設(shè)備可能出于相同目的而分別想 要使用詞項(xiàng)"bonjour"和"Hello"。但是,除了文本以外,可能還有其他的資源類(lèi)型是應(yīng)用想要基于文化、語(yǔ)言 或其他變量來(lái)改變的。例如,應(yīng)用可能會(huì)希望在語(yǔ)言被選為法語(yǔ)時(shí)顯示艾菲爾鐵塔 作為背景,而對(duì)于英語(yǔ)則可能希望顯示白金漢宮。類(lèi)似地,較為開(kāi)放的畫(huà)面對(duì)于應(yīng) 用開(kāi)發(fā)者相信是較為合適的那些語(yǔ)言/文化可能是合需的,而較為保守的圖像對(duì)于 軟件開(kāi)發(fā)者相信是較為保守的那些語(yǔ)言/文化可能是合需的。當(dāng)前用來(lái)解決這個(gè)問(wèn)題的方法是使用語(yǔ)言包。例如,Microsoft Word可以安裝 語(yǔ)言包。該語(yǔ)言包僅僅是改變定義的詞項(xiàng)的指針值。例如,安裝的法語(yǔ)包將會(huì)把用 于"edit"的菜單項(xiàng)替換為相應(yīng)的法語(yǔ)單詞,諸如"editer"??梢园惭b多個(gè)語(yǔ)言包, 但是隨著語(yǔ)言相關(guān)資源的數(shù)目變得越來(lái)越大,它們變得難以管理。并且,沒(méi)有基于
其他變體來(lái)管理資源的解決方案。因此,本領(lǐng)域中需要的是一種允許為多種類(lèi)型的資源管理語(yǔ)言變體的方法、 裝置和系統(tǒng)。此外,需要的是一種為多種資源類(lèi)型提供變體并使用多個(gè)變體來(lái)管理 資源的方法、裝置和系統(tǒng)。發(fā)明內(nèi)容與本發(fā)明相符的系統(tǒng)和方法通過(guò)創(chuàng)建為多種資源類(lèi)型提供變體并通過(guò)使用公 用變量和有組織的文件結(jié)構(gòu)來(lái)高效率地管理這些資源的系統(tǒng)和方法。在一個(gè)實(shí)施例中, 一種在數(shù)據(jù)語(yǔ)言中利用變量來(lái)生成用于管理資源的結(jié)構(gòu)的 方法,該方法包括接收由一變量區(qū)分的多個(gè)資源引用,并使用該變量和這多個(gè)資 源引用來(lái)構(gòu)建一結(jié)構(gòu),其中所述多個(gè)資源引用可以通過(guò)修改所述變量值來(lái)訪問(wèn)。在另一個(gè)實(shí)施例中, 一種生成用于訪問(wèn)由一公用變量區(qū)分的相似資源引用的 文件結(jié)構(gòu)的方法包括利用該公用變量類(lèi)型來(lái)劃分該文件結(jié)構(gòu),將與這些相似資源 引用中的每一個(gè)相關(guān)聯(lián)的值放置于該文件結(jié)構(gòu)內(nèi)的相同的相對(duì)位置處。在另一個(gè)實(shí)施例中, 一種存儲(chǔ)用于訪問(wèn)由一公用變量區(qū)分的相似資源引用的 文件結(jié)構(gòu)的設(shè)備包括存儲(chǔ)器> 所述文件結(jié)構(gòu)存儲(chǔ)在該存儲(chǔ)器中,其中所述文件結(jié) 構(gòu)是經(jīng)由一公用變量來(lái)組織的,并且這些相似資源引用在該文件結(jié)構(gòu)內(nèi)被定位在不 同公用變量值內(nèi)相同的位置處;以及處理器,用于利用該公用變量值來(lái)檢索這些資 源引用。在另一個(gè)實(shí)施例中, 一種包含計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì) 算機(jī)可執(zhí)行指令在被執(zhí)行時(shí)通過(guò)執(zhí)行以下步驟來(lái)生成用于訪問(wèn)由一公用變量區(qū)分 的相似資源引用的文件結(jié)構(gòu)利用該公用變量來(lái)劃分所述文件結(jié)構(gòu),并將與這些相 似資源引用中的每一個(gè)相關(guān)聯(lián)的值放置該文件結(jié)構(gòu)內(nèi)被該公用變量引用的相同的 相對(duì)位置中。在又一個(gè)實(shí)施例中, 一種在數(shù)據(jù)語(yǔ)言中管理資源的方法包括利用一參數(shù)來(lái) 接收對(duì)一資源的請(qǐng)求,修改該參數(shù),并接收利用該參數(shù)修改了的對(duì)一相關(guān)資源的請(qǐng) 求。在又一個(gè)實(shí)施例中, 一種接收對(duì)包含在利用一公用變量來(lái)組織的文件結(jié)構(gòu)內(nèi) 的資源值的請(qǐng)求的方法包括存儲(chǔ)該公用變量的值,接收對(duì)一資源的請(qǐng)求,其中該 請(qǐng)求包含該公用變量和資源引用,檢索該公用變量的值,并且利用檢索到的該公用 值和該資源引用通過(guò)查找該文件結(jié)構(gòu)中與該公用值和該資源引用相關(guān)聯(lián)的位置來(lái)
檢索該資源值。本方法可以進(jìn)一步包括修改公用變量的值,接收對(duì)于包含在利用該 公用變量和該資源引用來(lái)組織的該文件結(jié)構(gòu)內(nèi)的第二資源值的請(qǐng)求,檢索經(jīng)修改的 公用變量,利用經(jīng)修改的該公用變量和該資源引用來(lái)檢索第二資源值。本發(fā)明的其他目的、優(yōu)點(diǎn)和特征將在細(xì)閱此后闡述的附圖簡(jiǎn)要說(shuō)明、發(fā)明具 體說(shuō)明和權(quán)利要求書(shū)之后變得顯而易見(jiàn)。附圖簡(jiǎn)要說(shuō)明關(guān)于其中相同的附圖標(biāo)記始終代表相似要素的附圖
圖1是在本發(fā)明的一個(gè)實(shí)施例中設(shè)備可在其中操作的通信環(huán)境的功能圖;圖2是一般化地圖解本發(fā)明的一個(gè)實(shí)施例中的范例移動(dòng)設(shè)備的組件的功能框圖;圖3是一般化地圖解本發(fā)明的一個(gè)實(shí)施例中的范例移動(dòng)設(shè)備的組件的功能框圖;圖4是圖解本發(fā)明的一個(gè)實(shí)施例中的計(jì)算機(jī)平臺(tái)的應(yīng)用架構(gòu)的框圖;圖5是圖解本發(fā)明的一個(gè)實(shí)施例中的更新用戶(hù)界面組件的系統(tǒng)和描繪 trigplayer (trig播放器)、actor (邏輯部分)和trig (UI元素)的架構(gòu)的框圖;圖6是圖解本發(fā)明的一個(gè)實(shí)施例中的與管理由一公用語(yǔ)言變量來(lái)組織的相似 資源引用相關(guān)聯(lián)的一種文件結(jié)構(gòu)的框圖;圖7是本發(fā)明的一個(gè)實(shí)施例中的與管理由一公用語(yǔ)言變量來(lái)組織的多個(gè)相似 資源引用相關(guān)聯(lián)的更復(fù)雜的一種文件結(jié)構(gòu)的圖解;以及圖8圖解在本發(fā)明的一個(gè)實(shí)施例中與管理由一公用語(yǔ)言變量來(lái)組織的多個(gè)相 似資源引用和不同引用類(lèi)型相關(guān)聯(lián)的另一種更復(fù)雜的文件結(jié)構(gòu)。具體說(shuō)明現(xiàn)在將對(duì)附圖中圖解的本發(fā)明目前的示例性和優(yōu)選實(shí)施例作詳細(xì)參考,其中 相同的附圖標(biāo)記在這數(shù)幅圖面中始終表示相似或相應(yīng)的部分。在結(jié)合附圖考慮了以 下的具體說(shuō)明之后,本發(fā)明的本質(zhì)、目的和優(yōu)點(diǎn)對(duì)本領(lǐng)域技術(shù)人員而言將變得更加 顯而易見(jiàn)。就術(shù)語(yǔ)的使用而言,在本說(shuō)明中,術(shù)語(yǔ)"無(wú)線設(shè)備"、"無(wú)線電話"和"移 動(dòng)設(shè)備"被可互換地使用。在此所使用的術(shù)語(yǔ)"應(yīng)用"旨在涵蓋可執(zhí)行的和不可執(zhí) 行的軟件文件、原始數(shù)據(jù)、聚合數(shù)據(jù)、補(bǔ)丁、內(nèi)容、用戶(hù)界面和用戶(hù)界面組件、以
及其他代碼段。此外,在這數(shù)個(gè)視圖中,相同的附圖標(biāo)記始終表示相似的要素,且 除非在本說(shuō)明中另行指出,否則冠詞"一"和"該"包括復(fù)數(shù)的引用。以下說(shuō)明涉及使用TrigML數(shù)據(jù)語(yǔ)言的用戶(hù)界面資源管理方法、裝置和系統(tǒng)。 TrigML是在開(kāi)發(fā)用戶(hù)界面時(shí)很有用的數(shù)據(jù)語(yǔ)言。TrigML是由高通公司所有的產(chǎn) 品。與在XML下定義的數(shù)據(jù)語(yǔ)言相似,TrigML代碼包括標(biāo)簽的使用。本領(lǐng)域技 術(shù)人員將會(huì)認(rèn)識(shí)到,雖然上面的說(shuō)明是采用UI、 TrigML和管理語(yǔ)言的形式,但是 其也可以適用于除UI以外的其他應(yīng)用,可以用除TrigML以外的其他數(shù)據(jù)語(yǔ)言—— 包括其他基于XML的語(yǔ)言來(lái)實(shí)現(xiàn),并可用于利用除語(yǔ)言以外的其他變體來(lái)管理其 他資源類(lèi)型。本發(fā)明的實(shí)施例包括通過(guò)管理語(yǔ)言來(lái)管理諸如文本和圖像等的資源。這些可 以是包括但不限于文本、圖像、頁(yè)面排版、程序片段、對(duì)設(shè)備組件和功能的訪問(wèn)等 的任何資源。圖1是在本發(fā)明的一個(gè)實(shí)施例中設(shè)備可在其中操作的通信環(huán)境100的功能圖。 在本例中,通信環(huán)境IOO包括無(wú)線網(wǎng)絡(luò)122。無(wú)線網(wǎng)絡(luò)122可以是由無(wú)線服務(wù)供應(yīng) 商運(yùn)營(yíng)以向移動(dòng)設(shè)備提供數(shù)據(jù)或電信連接的通信網(wǎng)絡(luò)。此外,無(wú)線網(wǎng)絡(luò)122還可以 包括有線網(wǎng)絡(luò)、因特網(wǎng)、廣域網(wǎng)、公共交換電話網(wǎng)(PSTN)及其他公共和/或?qū)S?網(wǎng)絡(luò),由此設(shè)備可以直接或間接地利用連接至這些網(wǎng)絡(luò)的其他設(shè)備來(lái)通信。在一個(gè)例子中,無(wú)線網(wǎng)絡(luò)122可以包括蜂窩電話網(wǎng)。數(shù)個(gè)移動(dòng)設(shè)備在與無(wú)線 網(wǎng)絡(luò)122通信,諸如有蜂窩電話112、膝上型計(jì)算機(jī)116、 PDA 118、和移動(dòng)消息 接發(fā)設(shè)備120。這些設(shè)備僅是作為可以在無(wú)線網(wǎng)絡(luò)122上通信的許多類(lèi)型的設(shè)備的 例示而示出的。圖1中圖解了應(yīng)用服務(wù)器124和用戶(hù)界面服務(wù)器126。用戶(hù)界面服務(wù)器126 是供給用戶(hù)界面組件130 (在下面會(huì)更詳細(xì)地描述)的計(jì)算設(shè)備。這些用戶(hù)界面組 件130可以被下載到連接至無(wú)線網(wǎng)絡(luò)122的其他設(shè)備。用戶(hù)界面組件包括用于呈遞 用戶(hù)界面的代碼和/或數(shù)據(jù)(例如功能調(diào)用、菜單、用于進(jìn)行內(nèi)容調(diào)用的代碼、皮 膚等)。注意,可以使用包括內(nèi)容服務(wù)器在內(nèi)的許多其他的服務(wù)器來(lái)連接至網(wǎng)絡(luò)以 傳遞信息??捎玫男畔㈩?lèi)型是無(wú)限的,并且很多不同的示例對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō) 將是顯而易見(jiàn)的。用戶(hù)界面服務(wù)器126包括配置成在無(wú)線網(wǎng)絡(luò)122上向作出請(qǐng)求的 設(shè)備提供用戶(hù)界面組件130的服務(wù)器軟件。應(yīng)用服務(wù)器124是與無(wú)線網(wǎng)絡(luò)122耦合的使軟件應(yīng)用128可供移動(dòng)設(shè)備下載 的計(jì)算設(shè)備或系統(tǒng)。 一般而言,應(yīng)用128可以被諸如蜂窩電話112等的連接至無(wú)線 網(wǎng)絡(luò)122的設(shè)備下載以供在這些設(shè)備上執(zhí)行。在此特定實(shí)現(xiàn)中,由應(yīng)用下載服務(wù)器124供給的這些應(yīng)用128中的至少一個(gè)是配置成可供在這些移動(dòng)設(shè)備中的至少一個(gè) 上執(zhí)行的基于內(nèi)容的應(yīng)用。該基于內(nèi)容的應(yīng)用(客戶(hù)機(jī))被配置成從內(nèi)容服務(wù)器(未 示出)檢索內(nèi)容以供移動(dòng)設(shè)備經(jīng)由用戶(hù)界面來(lái)呈現(xiàn)。圖2是一般化地圖解本發(fā)明的一個(gè)實(shí)施例中的范例移動(dòng)設(shè)備201的組件的功 能框圖。移動(dòng)設(shè)備201可以是具有計(jì)算功能集的任何設(shè)備,諸如蜂窩電話、個(gè)人數(shù) 字助理、手持式"掌上"設(shè)備、膝上型計(jì)算機(jī)、便攜式音樂(lè)播放器、全球定位衛(wèi)星 (GPS)設(shè)備等。移動(dòng)設(shè)備201具有能夠接收和執(zhí)行軟件應(yīng)用和顯示數(shù)據(jù)的計(jì)算機(jī)平臺(tái)250。計(jì) 算機(jī)平臺(tái)250包括處理器252,諸如專(zhuān)用集成電路"ASIC"、數(shù)字信號(hào)處理器 ("DSP")、微處理器、微控制器、邏輯電路、狀態(tài)機(jī)、或其他數(shù)據(jù)處理設(shè)備。 處理器252執(zhí)行與移動(dòng)設(shè)備的存儲(chǔ)器256中的任何駐留程序接口的應(yīng)用程序編程接 口 ( "API")層254。存儲(chǔ)器256可以包括隨機(jī)存取或只讀存儲(chǔ)器(RAM或ROM)、 EPROM、 EEPROM、閃存、或各種計(jì)算機(jī)平臺(tái)常用的任何存儲(chǔ)器。計(jì)算機(jī)平臺(tái)250 還包括可以保存不是在存儲(chǔ)器256中現(xiàn)用的軟件應(yīng)用、文件或數(shù)據(jù)一~H者如從用戶(hù) 界面服務(wù)器126 (圖1)下載的軟件應(yīng)用或用戶(hù)界面組件的本地存儲(chǔ)258。本地存 儲(chǔ)258通常包括一個(gè)或多個(gè)閃存單元,但是也可以是本領(lǐng)域中己知的任何二級(jí)或三 級(jí)存儲(chǔ)設(shè)備,諸如磁介質(zhì)、EPROM、 EEPROM、光學(xué)介質(zhì)、帶、或是軟盤(pán)或硬盤(pán)。計(jì)算機(jī)平臺(tái)250還包括可被軟件應(yīng)用使用以利用用戶(hù)界面(未示出)來(lái)顯示 數(shù)據(jù)的顯示器260。圖2中所示的組件是許多類(lèi)型的移動(dòng)設(shè)備的典型,但是應(yīng)當(dāng)認(rèn)識(shí)到,也可以 向移動(dòng)設(shè)備201添加其他組件,并且在某些情形中,可以從移動(dòng)設(shè)備201中省略掉 圖2中所示的一些組件。圖3是一般化地圖解本發(fā)明的一個(gè)實(shí)施例中的范例計(jì)算設(shè)備301的核心組件 的功能框圖。計(jì)算設(shè)備301可以是任何固定計(jì)算設(shè)備,諸如臺(tái)式計(jì)算機(jī)或服務(wù)器。在本例中,計(jì)算設(shè)備301包括處理器單元304、存儲(chǔ)器306、存儲(chǔ)介質(zhì)313、 和音頻單元331。處理器單元304有利地包括微處理器或諸如數(shù)字信號(hào)處理器 (DSP)等的專(zhuān)用處理器,但是在替換方案中也可以是任何常規(guī)形式的處理器、控 制器、微處理器或狀態(tài)機(jī)。處理器單元304被耦合至存儲(chǔ)器306,存儲(chǔ)器306有利 地被實(shí)現(xiàn)為保存由處理器單元304執(zhí)行的軟件指令的RAM存儲(chǔ)器。在替換實(shí)施例 中,存儲(chǔ)器306可以由固件或閃存組成。在本實(shí)施例中,存儲(chǔ)在存儲(chǔ)器306中的軟
件指令包括操作系統(tǒng)310以及一個(gè)或多個(gè)其它應(yīng)用312,諸如采用用戶(hù)界面的應(yīng)用(未示出)。移動(dòng)設(shè)備301還包括使得計(jì)算設(shè)備301與諸如移動(dòng)設(shè)備等的一個(gè)或多個(gè)其他 計(jì)算設(shè)備之間得以雙向通信的通信模塊321。通信模塊321可以包括使得RF或其 他無(wú)線通信——諸如蜂窩電話網(wǎng)絡(luò)、藍(lán)牙連接、無(wú)線局域網(wǎng)、或可能還有無(wú)線廣域 網(wǎng)等得以實(shí)現(xiàn)的組件。替換地,通信模塊321可以包括用于使得陸線或硬布線網(wǎng)絡(luò) 通信——諸如以太網(wǎng)連接、RJ-ll連接、通用串行總線連接、IEEE 1394 (火線) 連接等得以實(shí)現(xiàn)的組件。以上是非窮盡的列表,并且許多其他替換方案也是可能的。 音頻單元331是移動(dòng)設(shè)備301中配置成在模擬與數(shù)字格式之間轉(zhuǎn)換信號(hào)的組件。音 頻單元331被移動(dòng)設(shè)備301使用以利用揚(yáng)聲器332來(lái)輸出聲音并從麥克風(fēng)333接收 輸入信號(hào)。圖3僅表示了在許多常規(guī)計(jì)算設(shè)備中一般找得到的某些組件。非常多的其他 組件也在特定實(shí)現(xiàn)中例行地找得到,并且在某些情形中,圖3中所示的一些組件可 以被省略掉。但是,圖3中所示的計(jì)算設(shè)備301是當(dāng)前常見(jiàn)的計(jì)算設(shè)備的典型。圖4圖解了本發(fā)明的一個(gè)實(shí)施例中的一種設(shè)備的應(yīng)用結(jié)構(gòu)。該設(shè)備將包括"計(jì) 算機(jī)平臺(tái)"。計(jì)算機(jī)平臺(tái)可以指包括硬件、軟件、或其兩者的設(shè)備組件。例如,其 可以包括操作系統(tǒng)、包括芯片在內(nèi)的底層硬件組件、用戶(hù)界面硬件(例如,顯示器、 輸入和輸出設(shè)備)、庫(kù)、支持API、對(duì)操作系統(tǒng)的附加擴(kuò)展等。在一個(gè)實(shí)施例中,無(wú)線設(shè)備的應(yīng)用架構(gòu)400包括設(shè)備API 405、BREW API 410、 BREW擴(kuò)展415、 Trigplayer 420、 Actor 425和Trig 430。設(shè)備API 405可以包括被 軟件平臺(tái)用來(lái)尋址專(zhuān)門(mén)與該設(shè)備相關(guān)聯(lián)的功能^^諸如專(zhuān)用處理器或ASIC功能、 專(zhuān)用設(shè)備硬件功能集等的那些API。BREW API 410是由高通公司開(kāi)發(fā)的軟件平臺(tái)。BREW API 410為應(yīng)用提供調(diào) 用不需專(zhuān)門(mén)為該設(shè)備編寫(xiě)的設(shè)備API405和其他功能的能力。換句話說(shuō),其從應(yīng)用 中抽象出了硬件的具體方面,藉此允許為許多個(gè)設(shè)備編寫(xiě)應(yīng)用而無(wú)需定制或僅需為 該應(yīng)用在其上運(yùn)行的每種具體設(shè)備稍作定制。BREW擴(kuò)展415提供了向BREW平臺(tái)添加附加擴(kuò)展能力——諸如提供MP3 播放器、Java虛擬機(jī)等的能力。Trigplayer 420、 Trig 430和Actor 425是高通公司開(kāi)發(fā)的uiOneTM架構(gòu)的組件。 這些組件通常涉及設(shè)備400的用戶(hù)界面方面。在一個(gè)實(shí)施例中,Trig430是已編譯 的TrigML⑧代碼、以及被應(yīng)用軟件用來(lái)在設(shè)備400上呈遞用戶(hù)界面的其他資源(其 可以包括元數(shù)據(jù)、文本文件及圖像)。多個(gè)Trig和被稱(chēng)作Triglet (未示出)的Trig 更新可以被用于用戶(hù)界面。由高通公司所有的TrigML代碼是基于XML的數(shù)據(jù)語(yǔ)言,并且可以用作用于 創(chuàng)作Trig 430的用戶(hù)界面呈現(xiàn)語(yǔ)言,并且包括以移動(dòng)設(shè)備為目標(biāo)的功能集、交式互 用戶(hù)界面事件模型、象素定位的優(yōu)勢(shì)以及其他優(yōu)勢(shì)。Actor 425包括用于將Trig連接至底層設(shè)備API 405禾卩/或BREW API 410的底 層C代碼。Actor 425還可以起到用于輸入/輸出的可執(zhí)行件的作用。并且,由于 Actor連接至底層設(shè)備和BREW API,因此其可對(duì)計(jì)算機(jī)平臺(tái)功能進(jìn)行訪問(wèn)。Trigplayer420可以被實(shí)現(xiàn)為BREW擴(kuò)展415,即便其在圖4中被分立出來(lái)。 Trigplayer用于通過(guò)利用Trig和actor來(lái)呈遞用戶(hù)界面。應(yīng)當(dāng)認(rèn)識(shí)到,盡管圖4的討論是采用高通公司的uiOne架構(gòu)(包括已編譯的 TrigML、 Trigplayer、 BREW API等)的形式,但是這是為了描述的目的,并且本 發(fā)明包括其他數(shù)據(jù)語(yǔ)言、計(jì)算機(jī)和軟件平臺(tái)以及設(shè)備架構(gòu)。圖5是圖解了在本發(fā)明的一個(gè)實(shí)施例中的更新用戶(hù)界面組件的系統(tǒng)和描繪了 trigplayer 420、 actor 425和trig 430的架構(gòu)的框圖。設(shè)備500包括trigplayer 420、 actor 425和Trig 430。 Trig可以包括TrigML代碼505、文本串510、圖像515和 更新通道520 (更新通道可以定義用于取回Triglet 530的URL和定時(shí)方案)???以空中更新Trig,由此允許用戶(hù)界面在設(shè)備已經(jīng)離開(kāi)制造商之后也能夠被更新。服 務(wù)器525可以被用于下載新的Trig和/或Trig的更新組件(例如Triglet 530),從 而允許設(shè)備所用的用戶(hù)界面能夠被自定義。圖6是圖解本發(fā)明的一個(gè)實(shí)施例中的與管理由一公用語(yǔ)言變量來(lái)組織的相似 資源引用相關(guān)聯(lián)的文件結(jié)構(gòu)600的框圖。一個(gè)實(shí)施例包括使用軟件開(kāi)發(fā)工具來(lái)創(chuàng)建 文件結(jié)構(gòu)600的用法以及用于訪問(wèn)該結(jié)構(gòu)的執(zhí)行過(guò)程。軟件開(kāi)發(fā)工具的一個(gè)例子包 括由高通公司所有的trigbuilder (trig構(gòu)建器)和trigpublisher (trig發(fā)布器)。用 于訪問(wèn)該結(jié)構(gòu)的執(zhí)行過(guò)程的一個(gè)例子包括trigplayer。在構(gòu)建用戶(hù)界面元素時(shí), trigbuilder從開(kāi)發(fā)者接收定義該元素的各方面的屬性。該用戶(hù)界面元素和該文件結(jié) 構(gòu)可以駐留在關(guān)于圖4和5所描述的Trig中。 一個(gè)屬性可以包括Slang屬性。 一文 件結(jié)構(gòu)由諸如Slang變量等的公用變量來(lái)組織,并且包括資源引用,由此一旦定義 了該公用變量,就可以使用相同的指令通過(guò)利用修改該公用變量來(lái)引用相似的資源 值。在構(gòu)建允許管理多種語(yǔ)言的系統(tǒng)時(shí),開(kāi)發(fā)者創(chuàng)建了諸如以下的TrigML元素 <text res="text/$lang/a">構(gòu)建器還將從開(kāi)發(fā)者接收該開(kāi)發(fā)者希望支持的語(yǔ)言。例如,開(kāi)發(fā)者可以選擇英語(yǔ)和法語(yǔ)。在上面的例子中,文本資源"a"已被創(chuàng)建并具有相關(guān)聯(lián)的英語(yǔ)和法語(yǔ)值。一個(gè)實(shí)施例基于資源"a"和開(kāi)發(fā)者所選擇的語(yǔ)言來(lái)創(chuàng)建一文件結(jié)構(gòu)。圖6描 繪了此文件結(jié)構(gòu)600的示例。在此例中,文本資源引用"a"在英語(yǔ)版本中具有"helIo" 605的值,而對(duì)于該文本資源"a"的法語(yǔ)版本中則具有"bo—" 610。圖7是本發(fā)明的一個(gè)實(shí)施例中的與管理由一公用語(yǔ)言變量組織的多個(gè)相似資 源引用相關(guān)聯(lián)的一種更加復(fù)雜的文件結(jié)構(gòu)700。以使得資源之間有相關(guān)性方式來(lái)構(gòu) 建文件結(jié)構(gòu)700簡(jiǎn)化了資源的管理。例如在圖7中,文本資源引用"a"表示"hello" 的兩種不同的表示705、 710,而文本資源"b"表示"Goodbye"的兩種不同的表 示715、 720。繼續(xù)參考圖7,這些不同的資源是使用Slang變量來(lái)訪問(wèn)的,諸如text/$lang/a如果將"$lang"定義為"英語(yǔ)",則以上表達(dá)式預(yù)解為"hello"。如果Slang 被定義為"法語(yǔ)",則以上表達(dá)式預(yù)解為"bonjour"。注意,是使用相同的資源 引用"a"來(lái)訪問(wèn)相關(guān)文本資源的兩種表示,即"hello"和"bo—"。圖8圖解了本發(fā)明一個(gè)實(shí)施例中的與管理由一公用語(yǔ)言變量來(lái)組織的管理多 個(gè)相似資源引用和不同的引用類(lèi)型(例如,包括文本和圖像)相關(guān)聯(lián)的另一種更復(fù) 雜的文件結(jié)構(gòu)800。如上文和下文所描述地,任何資源類(lèi)型皆可利用對(duì)變量范式的 管理而不僅僅是利用語(yǔ)言變量來(lái)操縱文本資源來(lái)實(shí)現(xiàn)。預(yù)解Slang變量在一個(gè)實(shí)施例中,可以使用trigplayer來(lái)在己編譯代碼中預(yù)解Slang變量。但是, 本領(lǐng)域技術(shù)人員將可認(rèn)識(shí)到,可以使用任何解析器或其他代碼分析器。并且,該代 碼并非必需是已編譯的。Slang變量可以由設(shè)備、開(kāi)發(fā)者、應(yīng)用或是其他能夠訪問(wèn)這些變量的實(shí)體來(lái)設(shè) 置或改變。在一個(gè)范式中,Slang具有缺省值,例如"英語(yǔ)",并且可以由設(shè)備在 之后的時(shí)刻改變。如果Slang值改變,則trigplayer在確定要訪問(wèn)哪個(gè)資源時(shí)將試圖使用該值。如 果該語(yǔ)言資源不存在,則trigplayer會(huì)返回到上一個(gè)有效的Slang值。例如,如果Slang
先前的值是英語(yǔ),之后變?yōu)榈抡Z(yǔ),并且遇到了以下表達(dá)式 text/$lang/atrigplayer將會(huì)試圖尋找"text/German/a"。但是,如果不存在"德語(yǔ)",則 trigplayer將會(huì)回歸至先前的有效Slang值。因此,如果英語(yǔ)的Slang的值先前被成 功使用過(guò),則當(dāng)遇到以上表達(dá)式時(shí),trigplayer將在之后試著尋找"text/English/a"。替換地,trigplayer可以使Slang具有其總是回歸的默認(rèn)值。又一個(gè)替換方案是 可以返回一錯(cuò)誤,例如資源沒(méi)有找到的錯(cuò)誤。以上是采用語(yǔ)言和Slang變量的形式對(duì)各實(shí)施例進(jìn)行了說(shuō)明。但是,可以用相 同的方式來(lái)使用除語(yǔ)言以外的其他變量來(lái)控制變量值。例如,可以使用一變量來(lái)管 理所支持的多個(gè)設(shè)備、諸如屏幕尺寸、功能等的其他設(shè)備資源、等等。將可認(rèn)識(shí)到, 任何資源皆可以使用在此所描述的方法和裝置來(lái)管理。本發(fā)明實(shí)施例的進(jìn)一步說(shuō)明如果Trig或Triglet (UI元素)中一資源的路徑包含Slang,并且你為多種語(yǔ)言 進(jìn)行編譯,則用于每種語(yǔ)言的每一資源數(shù)據(jù)將以該路徑的Slang部分被以?xún)蓚€(gè)字母 的國(guó)別代碼代替的方式來(lái)被包括。(注意,在本文中,除非特別指出,否則使用 "Trig"始終是指Trig或Triglet)。例如, 一包含三種語(yǔ)言的文本資源的路徑是text/$lang/greeting,en=helIo de=guten tag fr=bonjour這些路徑得以擴(kuò)展為text/en/greeting text/de/greeting text/fr/greeting。為了在TrigML中引用該路徑,Slang變量被保持在該路徑中,并且Trigplayer查找手機(jī)的語(yǔ)言并從存在的多個(gè)值中選擇正確的要包括的資源。< xml version="1.0" encoding="UTF-8,,?〉 <trigml><layer><group><text res=,,text/$Iang/mlang,7> </group> </layer> </trigml>
默認(rèn)語(yǔ)言默認(rèn)語(yǔ)言是用于攜帶在Trig屬性中以使得trig被編譯時(shí)默認(rèn)語(yǔ)言是在語(yǔ)言的 /config/supportedLangs數(shù)據(jù)列表中的第一個(gè)語(yǔ)言的額外信息。在一個(gè)實(shí)施例中,編譯器可以假定其為傳遞給編譯器的數(shù)組中的第一個(gè)語(yǔ)言D TrigplayerTrigplayer當(dāng)前讀取定位于包含Trig支持的語(yǔ)言的由換行符分隔的列表 /config/supportedLangs處的文本資源。該列表中的第一個(gè)語(yǔ)言是"默認(rèn)"語(yǔ)言,即 如果在該手機(jī)上選擇的語(yǔ)言不被支持時(shí)播放器將撤退到的語(yǔ)言。如果上述資源不存在,則Slang將返回NULL串。行為的例子包括 嘗試當(dāng)前手機(jī)語(yǔ)言 如果trig不支持,則撤退到上一次成功使用的語(yǔ)言 如果沒(méi)有上一次成功使用的語(yǔ)言(例如,首次開(kāi)機(jī)),則撤退到第一次支 持的語(yǔ)言Parcel改變?cè)诹?一個(gè)實(shí)施例中,Parcelforce代碼的使用藉由資源對(duì)象上的方法is—multilang來(lái)抽象出資源是否為多語(yǔ)言的意義。該方法測(cè)試在該資源對(duì)象的資源路徑中是否存 在串Slang。當(dāng)一對(duì)象的資源路徑是一新變量lang時(shí),如果該自變量被傳入,則將用傳入 的語(yǔ)言來(lái)替代SIang的存在。此代碼然后在TrigCompiler正在生成進(jìn)入條形文件的 資源路徑時(shí)由TrigCompiler調(diào)用。get—resoure_path的所有其他用法都將返回路徑 而不替換Slang以供在例如TrigBuilder中使用。還有一種統(tǒng)一檢查來(lái)査看Trig是否為多語(yǔ)言的調(diào)用。Trig對(duì)象上的方法 is一multilang檢查所有其包含的資源是多語(yǔ)言。該公用代碼在多處使用,并且遵循 良好的編程實(shí)踐將公用代碼放在一處。通過(guò)以這種方式來(lái)對(duì)其進(jìn)行抽象,我們可以更容易地移至未來(lái)多語(yǔ)言處理的 不同實(shí)現(xiàn)。上述方法和軟件設(shè)計(jì)描述也可以在裝置中實(shí)現(xiàn)、作為指令存儲(chǔ)在RAM中或其 他存儲(chǔ)設(shè)備中。盡管已經(jīng)按特定次序順序地圖解并描述了本文中給出的過(guò)程,但是 在其他實(shí)施例中,這些過(guò)程的步驟可以按不同的次序、多次、和/或并行地來(lái)執(zhí)行。 此外,在一些實(shí)施例中,在這數(shù)個(gè)過(guò)程中描述的一個(gè)或多個(gè)步驟可以作為單獨(dú)的步
驟、組合成更少的步驟來(lái)執(zhí)行,或可能被完全省略掉。雖然前面的公開(kāi)示出了本發(fā)明的示例性實(shí)施例,但是應(yīng)當(dāng)注意,可以對(duì)所描 述的實(shí)施例進(jìn)行各種變化和修改,而不會(huì)脫離由所附權(quán)利要求定義的本發(fā)明的精神 和范圍。此外,盡管本發(fā)明的要素可能是以單數(shù)來(lái)描述或作權(quán)利要求的,但是復(fù)數(shù) 也是已構(gòu)想了的,除非顯性地陳述限定為單數(shù)。
權(quán)利要求
1.一種在數(shù)據(jù)語(yǔ)言中利用變量來(lái)生成用于管理資源的結(jié)構(gòu)的方法,包括接收由一變量區(qū)分的多個(gè)資源引用;以及利用所述變量和所述多個(gè)資源引用來(lái)構(gòu)建一結(jié)構(gòu),其中所述多個(gè)資源引用可以通過(guò)修改所述變量值來(lái)訪問(wèn)。
2. —種生成用于訪問(wèn)由一公用變量區(qū)分的相似資源引用的文件結(jié)構(gòu)的方法,包括利用將與所述相似資源引用中的每一個(gè)相關(guān)聯(lián)的值放置于所述文件結(jié)構(gòu)內(nèi)相 同的相對(duì)位置處的所述公用變量類(lèi)型來(lái)劃分所述文件結(jié)構(gòu)。
3. —種存儲(chǔ)用于訪問(wèn)由一公用變量區(qū)分的相似資源引用的文件結(jié)構(gòu)的設(shè)備, 包括存儲(chǔ)器所述文件結(jié)構(gòu)存儲(chǔ)在所述存儲(chǔ)器中,其中所述文件結(jié)構(gòu)是經(jīng)由一公用變量來(lái) 組織的,并且所述相似的資源引用在所述文件結(jié)構(gòu)內(nèi)被定位在不同公用變量值內(nèi)相 同的位置處;以及處理器,用于利用所述公用變量值來(lái)檢索所述資源引用。
4. 一種包含計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在 被執(zhí)行時(shí)通過(guò)執(zhí)行以下步驟來(lái)生成用于訪問(wèn)由公用變量區(qū)分的相似資源引用的文 件結(jié)構(gòu)利用所述公用變量來(lái)劃分所述文件結(jié)構(gòu),并將與所述相似資源引用中的每一 個(gè)相關(guān)聯(lián)的值放置于所述文件結(jié)構(gòu)內(nèi)被所述公用變量引用的相同的相對(duì)位置中。
5. —種生成用于訪問(wèn)由一公用變量區(qū)分的相似資源類(lèi)型的文件結(jié)構(gòu)的設(shè)備,包括用于使用所述公用變量來(lái)劃分所述文件結(jié)構(gòu)、將與所述相似資源引用中的每 一個(gè)相關(guān)聯(lián)的值放置于所述文件結(jié)構(gòu)內(nèi)相同的相對(duì)位置中的裝置。
6. —種在數(shù)據(jù)語(yǔ)言中管理資源的方法,包括 利用一參數(shù)接收對(duì)一資源的請(qǐng)求; 修改所述參數(shù);以及接收利用所述參數(shù)修改了的對(duì)一相關(guān)資源的請(qǐng)求。
7. —種接收對(duì)包含在利用一公用變量來(lái)組織的文件結(jié)構(gòu)內(nèi)的資源值的請(qǐng)求的 方法,包括存儲(chǔ)所述公用變量的值;接收對(duì)一資源的請(qǐng)求,其中所述請(qǐng)求包含所述公用變量和資源引用; 檢索所述公用變量的值;以及利用檢索到的所述公用值和所述資源引用通過(guò)查找所述文件結(jié)構(gòu)中與所述公 用值和所述資源引用相關(guān)聯(lián)的位置來(lái)檢索所述資源值。
8. 如權(quán)利要求7所述的方法,進(jìn)一步包括修改公用變量的值;接收對(duì)于包含在利用所述公用變量和所述資源引用來(lái)組織的所述文件結(jié)構(gòu)內(nèi) 的第二資源值的請(qǐng)求;檢索經(jīng)修改的所述公用變量;以及利用經(jīng)修改的所述公用變量和所述資源引用來(lái)檢索第二資源值。
9. 一種用于檢索資源值的設(shè)備,包括存儲(chǔ)器,包含利用一公用變量和一資源引用來(lái)組織的文件結(jié)構(gòu);以及 處理器,用于接收對(duì)于一資源值的請(qǐng)求,所述請(qǐng)求包含所述公用變量和所述 資源引用,其中所述處理器進(jìn)一步通過(guò)查找所述文件結(jié)構(gòu)內(nèi)與所述公用變量的 值和所述資源引用相關(guān)聯(lián)的存儲(chǔ)器位置來(lái)檢索所述公用變量的值和檢索所述資源 的值。
10. —種包含計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令 用于接收對(duì)包含在利用一公用變量來(lái)組織的文件結(jié)構(gòu)內(nèi)的資源值的請(qǐng)求,所述計(jì)算機(jī)可執(zhí)行指令在被執(zhí)行時(shí),進(jìn)行以下步驟存儲(chǔ)所述公用變量的值;接收對(duì)一資源的請(qǐng)求,其中所述請(qǐng)求包含所述公用變量和資源引用; 檢索所述公用變量的值;以及使用檢索出的所述公用值和所述資源引用通過(guò)查找所述文件結(jié)構(gòu)中與所述公 用值和所述資源引用相關(guān)聯(lián)的位置來(lái)檢索所述資源值。U. —種用于接收對(duì)包含在利用一公用變量來(lái)組織的文件結(jié)構(gòu)內(nèi)的資源值的 請(qǐng)求的設(shè)備,包括用于存儲(chǔ)所述公用變量的值的裝置;用于接收對(duì)一資源的請(qǐng)求的裝置,其中所述請(qǐng)求包含所述公用變量和資源引用;用于檢索所述公用變量的值的裝置;以及用于利用檢索出的所述公用值和所述資源引用通過(guò)查找所述文件結(jié)構(gòu)中與所 述公用值和所述資源引用相關(guān)聯(lián)的位置來(lái)檢索所述資源值的裝置。
全文摘要
描述了為多種資源類(lèi)型提供變體以及通過(guò)使用公用變量和有組織的文件結(jié)構(gòu)來(lái)高效率地管理這些資源的各種方法和裝置。一文件結(jié)構(gòu)由例如$lang變量等的公用變量來(lái)組織,并且包括資源引用,由此一旦定義了該公用變量,就可以使用相同的指令,通過(guò)利用修改該公用變量來(lái)引用相似的資源??梢允褂迷诖怂沂镜奈募Y(jié)構(gòu)來(lái)管理多種資源類(lèi)型,包括文本、圖像以及其他資源類(lèi)型。
文檔編號(hào)G06F9/44GK101213516SQ200680024301
公開(kāi)日2008年7月2日 申請(qǐng)日期2006年5月31日 優(yōu)先權(quán)日2005年5月31日
發(fā)明者D·T·貝瑞, N·克萊瑞, R·沃爾瑪 申請(qǐng)人:高通股份有限公司