專利名稱:以可選顯示語言提供用戶接口的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及下述共同轉(zhuǎn)讓的共同未決美國(guó)專利申請(qǐng)序列號(hào)為09/211809,名稱為“用于獲取語言翻譯和把信息歸類到一個(gè)文本串類的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品”,1998年12月15日申請(qǐng);序列號(hào)為09/21108,名稱為“分類文本串的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品”,1998年12月15日申請(qǐng);序列號(hào)為09/211803,名稱為“分類翻譯和/或語音拼寫信息到一個(gè)文本串類中的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品”,1998年12月15日申請(qǐng);序列號(hào)為09/211799,名稱為“在一個(gè)圖形用戶接口中在一個(gè)多字段文本類中遍歷一系列顯示狀態(tài)的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品”,1998年12月15日申請(qǐng);序列號(hào)為09/211802,名稱為“控制多字段文本串對(duì)象的圖形顯示的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品”,1998年12月15日申請(qǐng);序列號(hào)為09/211813,名稱為“顯示多字段文本串對(duì)象中所有字段內(nèi)容的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品”,1998年12月15日申請(qǐng);序列號(hào)為09/211801,名稱為“用于在多字段文本串對(duì)象中通過消息傳送進(jìn)行動(dòng)態(tài)語言切換的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品”,1998年12月15日申請(qǐng);序列號(hào)為09/211812,名稱為“用于在文本串對(duì)象中自動(dòng)字符翻譯的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品”,1998年12月15日申請(qǐng)。以上所引用的申請(qǐng)的內(nèi)容結(jié)合在此用作參考。
本發(fā)明一般說來涉及改變文本串的用戶接口顯示,特別涉及改變多字段文本串對(duì)象的用戶接口顯示。再特別說,本發(fā)明涉及在用戶接口顯示內(nèi)從一個(gè)多字段文本串對(duì)象中選擇顯示任何字段。
跨國(guó)公司常常經(jīng)營(yíng)橫跨全球多個(gè)地點(diǎn)的信息系統(tǒng)(IS)網(wǎng)絡(luò)。為最大限度使用這樣的網(wǎng)絡(luò),在每一國(guó)家內(nèi)的運(yùn)作趨向于運(yùn)用該國(guó)的本地語言。只要可能,用戶應(yīng)用程序中的抽象對(duì)象的名字采用本國(guó)語言,并以抽象對(duì)象表示與本國(guó)語言的組織,城市或人名匹配。在系統(tǒng)管理軟件的場(chǎng)合,抽象對(duì)象常常表示全球企業(yè)的每一個(gè)本地機(jī)構(gòu)。
當(dāng)抽象對(duì)象名使用本地語言和本地語言的基礎(chǔ)字符集時(shí),這種全球網(wǎng)絡(luò)的中央管理可能很困難甚或不可能。對(duì)于位于埃及的辦事處,抽象對(duì)象以阿拉伯語命名更為自然;設(shè)在俄羅斯的辦事處將使用西里爾字符集命名對(duì)象;而對(duì)設(shè)在日本的辦事處,將使用日語命名對(duì)象。然而,當(dāng)企業(yè)本部的IS人員試圖檢查這些對(duì)象時(shí)將產(chǎn)生問題。位于美國(guó)的跨國(guó)本部的IS人員不大可能會(huì)阿拉伯語或日語,也不可能識(shí)別西里爾字符。
例如,日語是一種詞音節(jié)或表意文字語言,它沒有表示簡(jiǎn)單聲音的字母,相反具有非常大的字符集,其符號(hào)(表意文字)相應(yīng)于概念或物體,而不是簡(jiǎn)單的聲音。例如,在1981年通過的日語當(dāng)用漢字表(日常用漢字)包括1945個(gè)符號(hào)。不熟悉漢字字符的用戶很難識(shí)別使用日語命名的特定抽象對(duì)象,對(duì)于講英語和日語的雙方,甚至很難通過電話討論這種抽象對(duì)象。
另外,僅看見表意字符也許不能提供正確的意義或發(fā)音的線索,因?yàn)樵谌照Z中,同一字符可以具有多種意義或者多種發(fā)音。例如,圖7A示出的字符可以指“西方”,也可指“西班牙”;圖7B所示符號(hào)可以讀作“hayashi”或者“rin”(或“l(fā)in”);圖7C所示字符可以讀作“suga no”,“suga ya”,“kan no”或“kan ya”。這一狀況部分基于日語的歷史,日語的漢字采用的是漢語的漢字。這樣,例如在圖7B中示出的“rin”符號(hào)是音讀,是當(dāng)該字符輸入到日本時(shí)基本模仿漢語發(fā)音,而“hayashi”是訓(xùn)讀,是把具有同樣意義的日語詞指定給該字符。
因此,希望提供一種機(jī)制,用于有選擇地控制在用戶接口中使用文本串的哪一種顯示語言。如果該機(jī)制允許用戶改變用戶接口的顯示語言和編輯任何顯示字段的內(nèi)容的話,則更具優(yōu)點(diǎn)。
因此本發(fā)明的一個(gè)目的是提供一種改變文本串的用戶接口顯示的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。
本發(fā)明的另一個(gè)目的是提供一種改變多字段文本串對(duì)象用戶接口顯示的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。
本發(fā)明的再一個(gè)目的是提供一種方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品,用于在一個(gè)用戶接口顯示內(nèi)有選擇地顯示一個(gè)多字段文本串對(duì)象的任何字段。
前述目的可以實(shí)現(xiàn),現(xiàn)在來說明。提供一種用戶控件,用以有選擇地顯示和/或編輯多字段文本串對(duì)象中的任何字段的內(nèi)容,所述多字段文本串對(duì)象具有單獨(dú)的字段,每一個(gè)包含一個(gè)文本串的不同表示(例如,漢字符號(hào),語音拼寫該漢字符號(hào)的音節(jié)表字符,和語音拼寫該漢字符號(hào)的拉丁字符)。這樣,不同字段包含了單個(gè)文本串的標(biāo)識(shí),意義和發(fā)音信息。在用戶控件和多字段文本串對(duì)象之間的控制器接口允許對(duì)該多字段文本串對(duì)象執(zhí)行在該用戶控件內(nèi)的方法。對(duì)于該多字段文本串對(duì)象當(dāng)前選擇的顯示字段的內(nèi)容連同一個(gè)選擇的控件被顯示??梢则?qū)動(dòng)該選擇控件以顯示在該多字段文本串對(duì)象內(nèi)的所有字段內(nèi)容的一個(gè)有序表,和通過從顯示的表中選擇一個(gè)字段而改變當(dāng)前顯示字段。這樣,不能根據(jù)一個(gè)文本串的表示識(shí)別、理解、或讀出該文本串的用戶可以切換其視圖為一個(gè)用戶熟悉的同一文本串的不同表示。也可以編輯當(dāng)前選擇的顯示字段的內(nèi)容。
本發(fā)明的上述以及其它目的、特征和優(yōu)點(diǎn)在下面詳細(xì)書寫的說明書中十分明顯。
在所附權(quán)利要求中敘述相信作為本發(fā)明特征的新穎特點(diǎn)。然而參考下面對(duì)示范實(shí)施例的詳細(xì)說明,結(jié)合閱讀附圖,會(huì)更好地理解本發(fā)明自身,以及優(yōu)選使用方式,其另外的目的和優(yōu)點(diǎn)。
圖1表示一個(gè)數(shù)據(jù)處理系統(tǒng)的圖,其中可以實(shí)現(xiàn)本發(fā)明的一個(gè)優(yōu)選實(shí)施例;圖2是一個(gè)多字段文本串類的圖,它通過按照本發(fā)明的優(yōu)選實(shí)施例以另外可供選擇的顯示語言,用于提供用戶接口;圖3是表示一種機(jī)制的圖,根據(jù)本發(fā)明的實(shí)施例,該機(jī)制提供對(duì)顯示和編輯單個(gè)多字段文本串類對(duì)象或多字段文本串類對(duì)象離散集的控件;圖4A-4B是按照本發(fā)明的實(shí)施例為顯示多字段文本串類對(duì)象的處理控制的用戶接口圖;圖5A-5B表示根據(jù)本發(fā)明的優(yōu)選實(shí)施例的一個(gè)用戶接口控件,用于選擇或編輯多字段文本串對(duì)象的一個(gè)當(dāng)前顯示字段;圖6是用戶控件操作的一個(gè)高層流程圖,表示根據(jù)本發(fā)明的優(yōu)選實(shí)施例,有選擇地顯示或編輯多字段文本串內(nèi)的任何字段;圖7A-7C表示具有多重意義或發(fā)音的表意字符。
現(xiàn)在參考附圖,特別參考圖1,它表示其內(nèi)可以實(shí)現(xiàn)本發(fā)明的優(yōu)選實(shí)施例的一個(gè)數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)100可以例如是由紐約Armonk的IBM公司生產(chǎn)的Aptiva_型的個(gè)人計(jì)算機(jī)。數(shù)據(jù)處理系統(tǒng)100包括處理器102,其在例示實(shí)施例中連接在二級(jí)(L2)超高速緩沖存儲(chǔ)器104上,后者依次連接到系統(tǒng)總線106。在例示實(shí)施例中,數(shù)據(jù)處理系統(tǒng)100包括連接到系統(tǒng)總線106的圖形適配器118,為顯示器120接收用戶接口信息。
連接到系統(tǒng)總線106的還有系統(tǒng)存儲(chǔ)器108和輸入/輸出(I/O)總線橋110。I/O總線橋110連接I/O總線112到系統(tǒng)總線106,從一條總線中繼和/或變換數(shù)據(jù)事務(wù)處理到另一條總線。諸如非易失存儲(chǔ)器114和鍵盤/指點(diǎn)設(shè)備116等外圍設(shè)備連接到I/O總線112。非易失存儲(chǔ)器可以是硬盤驅(qū)動(dòng)器,指點(diǎn)設(shè)備可以包括常規(guī)的鼠標(biāo),軌跡球和其它類似的設(shè)備。
圖1所示例示實(shí)施例僅為解釋本發(fā)明的目的而提供,熟悉本技術(shù)領(lǐng)域的人會(huì)理解,無論是形式還是功能,都可以有許多變體。例如,數(shù)據(jù)處理系統(tǒng)100可能還包括一個(gè)密致盤只讀存儲(chǔ)器(CD-ROM)或數(shù)字視頻盤(DVD)驅(qū)動(dòng)器,聲卡和音頻揚(yáng)聲器,和許多其它可選部件。所有的這些變體相信都在本發(fā)明的精神和范圍之內(nèi)。數(shù)據(jù)處理系統(tǒng)100和下面的Java實(shí)施例僅為解釋的目的提供,并不打算隱含結(jié)構(gòu)上的限制。熟悉本技術(shù)領(lǐng)域的人會(huì)理解,所有這些相信都包含在本發(fā)明的精神和范圍之內(nèi)。
參考圖2,圖中表示一個(gè)多字段文本串類的圖,它通過按照本發(fā)明的優(yōu)選實(shí)施例,提供一個(gè)具有可選顯示語言的用戶接口。需要以多種人類語言顯示數(shù)據(jù)的多國(guó)計(jì)算環(huán)境的一個(gè)基本問題在于,口述詞匯通常包含多方面或多重屬性的信息,諸如通過該詞的意義,從上下文,和/或從音調(diào)變化。當(dāng)縮減為在數(shù)據(jù)處理系統(tǒng)中為操作或顯示的視覺或電子表示時(shí),該詞可能丟掉某些屬性和許多關(guān)聯(lián)的意義。對(duì)于數(shù)據(jù)處理系統(tǒng)最重要的是,一個(gè)詞的視覺表示對(duì)于該詞的正確翻譯或發(fā)音或在特定排序順序內(nèi)恰當(dāng)?shù)胤胖靡辉~給不出任何線索??梢允褂脟?guó)際串(“IString”)類202來解決這一問題。
IString類202優(yōu)選為一個(gè)類似于Java串類的Java類。它通過包括類似方法,其行為像串類。串(String)類的大多數(shù)原來的行為應(yīng)該保留,而增加一些另外的功能,僅在需要時(shí)使用。IString類202是數(shù)據(jù)類型,它獲取口述詞匯在縮減為視覺表示時(shí)通常丟失的某些意義。優(yōu)選使用IString類202用于系統(tǒng)內(nèi)的所有對(duì)象名和系統(tǒng)消息。
IString類202結(jié)構(gòu)為每一個(gè)名字、消息、數(shù)據(jù)、或文本對(duì)象包括三個(gè)不同的串baseString 204,sortString 206,和altString 208。baseString 204是IString類202中在缺省時(shí)用于用戶接口顯示的串,可以包含任何文本,通常為在建立該Istring對(duì)象時(shí)由用戶以本地語言輸入的原始文本。SortString 206也可以是任何文本,其用于允許正確地分類非語音語言和僅根據(jù)baseString 204的二進(jìn)制值難以分類的語言。altString 208可以是任何文本,但是常規(guī)上應(yīng)該以在baseString 204中包含的數(shù)據(jù)發(fā)音的拉丁字符集表示填充。這樣,對(duì)于IString類202包括對(duì)象名、系統(tǒng)消息和其它數(shù)據(jù)原始文本(baseString 204),分類關(guān)鍵字(sortString 206)和發(fā)音關(guān)鍵字(altString 208)。
當(dāng)用Java實(shí)現(xiàn)時(shí),IString類202對(duì)象的構(gòu)造程序可以包括下述字段<pre listing-type="program-listing"><![CDATA[/**The base text String*/protected String baseString;/**The related text String for proper collation*/protected String sortString;/**The related alternate text String(pronunciation key)*/protected String altString;/**The source locale,as an ISO-3166 code;used forcollation*/protected String sourceLocale;/**The source language,as an ISO-639 code*/protected String sourceLanguage;/**The source variant defined for EBCIDIC and case mapping*/protected String sourceVariant;/**The target locale,as an ISO-3166 code*/protected String targetLocale;/**The target language,as an ISO-639 code*/protected String targetLanguage;/**The target variant defined for EBCIDIC and case mapping*/protected String targetVariant;]]></pre>由ISO-3166定義的兩大寫字母的ISO國(guó)家代碼和由ISO-639定義的兩小寫字母的ISO語言代碼的完整表很容易從因特網(wǎng)的各種信息源中獲得。
表I表示當(dāng)用一張表表示時(shí),IString數(shù)據(jù)類型202內(nèi)的數(shù)據(jù)看起來是怎樣的
Table I為在內(nèi)容獨(dú)立于語言或地點(diǎn)的一個(gè)新的空IString類對(duì)象202的一個(gè)Java構(gòu)造程序可以是<pre listing-type="program-listing"><![CDATA[/**************************************<P></P>**<dt><b>Description</b><dd>*<p>Allocate a new IString containing no characters in thedefault*locale.</p>**************************************public Istring(){ this.baseString=new String(); this.sortString=new String(); this.altString=new String(); init(); }]]></pre>然而,為允許IString類202數(shù)據(jù)類型的對(duì)象存儲(chǔ)在一個(gè)對(duì)象數(shù)據(jù)庫(ODB)內(nèi),以及允許通過公共對(duì)象請(qǐng)求代理結(jié)構(gòu)(CORBA)應(yīng)用程序操作IString數(shù)據(jù),應(yīng)該定義一個(gè)接口定義語言(IDL)類<pre listing-type="program-listing"><![CDATA[struct IString{string baseString; //base test Stringstring sortString; //related text string for collationstring altString; //related alternate textString //(pronunciation)string sourceLocale;//source locale as an 1SO-3166 codestring sourceLanguage; //source language as an ISO-639 //codestring sourceVariant; //source variant codestring targetLocale;//target locale as an ISO-3166 codestring targetLanguage; //target language as an ISO-639 //codestring targetVariant; //target variant code}]]></pre>baseString 204、sortString 206和altString 208的內(nèi)容優(yōu)選但并非一定為由在IString類202內(nèi)的數(shù)據(jù)輸入方法210輸入的統(tǒng)一代碼文本(Unicode text)。數(shù)據(jù)輸入方法210,從而baseString 204、sortString 206和altString 208的內(nèi)容可能至少部分依賴于由sourceLocale字段212、sourceLanguage字段214、targetLocale字段216和targetLanguage字段218定義的語言和地點(diǎn)參數(shù)。
因?yàn)閿?shù)據(jù)輸入方法210依賴于由基礎(chǔ)主系統(tǒng)使用的地點(diǎn)和/或語言,因此一個(gè)新IString對(duì)象202的建立優(yōu)選產(chǎn)生其內(nèi)建立IString對(duì)象202的主系統(tǒng)的地點(diǎn)和語言屬性,放在sourceLacale字段212和sourceLanguage字段214中。為從建立IString類對(duì)象的主系統(tǒng)確定的特定地點(diǎn)和語言分配一個(gè)新的空IString的構(gòu)造程序可以是<pre listing-type="program-listing"><![CDATA[/***************************************<P></P>**<dt><b>Description</b><dd>*<p>Allocate a new IString containing no characters in the*specified locale.</p>**************************************public IString(Locale loc){ this.baseString=new String(); this.sortString=new String(); this.altString=new String(); this.sourceLocale=loc.getLocale(); this.sourceLanguage=loc.getLanguage(); init(); }]]></pre>輸入數(shù)據(jù)到IString類202對(duì)象優(yōu)選依賴于地點(diǎn)或語言。SourceLanguage和targetLanguage屬性214和218控制數(shù)據(jù)如何由數(shù)據(jù)輸入方法210輸入到一個(gè)IString類對(duì)象202中。SourceLanguage屬性214可以設(shè)定為其上建立IString類對(duì)象的主系統(tǒng)的語言屬性。TargetLanguage屬性218也可以設(shè)定為該語言,或可以另外設(shè)定為一種公共的、“通用”語言,諸如英語。數(shù)據(jù)輸入方法210比較sourceLanguage和targetLanguage屬性214和218,以決定在IString類對(duì)象202的baseString 204、sortString 206和altString 208中輸入什么。
通過IString類202的數(shù)據(jù)輸入方法210把字符串輸入到baseString 204、sortString 206和altString 208字段,數(shù)據(jù)輸入方法210可以有選擇地使用用戶直接輸入的數(shù)據(jù)或者來自譯音引擎220或輸入方法編輯器(IME)224的說明。在targetLanguage屬性218設(shè)定英語作為缺省值的場(chǎng)合,數(shù)據(jù)輸入方法210根據(jù)由用戶用以輸入數(shù)據(jù)的語言(sourceLanguage屬性214)使用的字符集決定baseString 204、sortString 206和altString 208字段的內(nèi)容。
對(duì)于使用拉丁字符集的語言,用戶輸入由數(shù)據(jù)輸入方法210放入IString類202的所有3個(gè)字段(baseString 204、sortString206和altString 208)。一個(gè)合適的構(gòu)造程序可以是<pre listing-type="program-listing"><![CDATA[/**************************************<P></P>**<dt><b>Description</b><dd>*<p>Allocate a new IString which contains the same sequence of*characters as the string argument in the specified locale.</p>**************************************public IString(String str,Locale loc){ this.baseString=new String(str); this.sortString=new String(str); this.altString=new String(str); this.sourceLocale=loc.getLocale(); this.sourceLanguage=loc.getLanguage(); init(); }]]></pre>對(duì)于大多數(shù)地點(diǎn)和語言,所錄入的串將輸入到IString對(duì)象202的所有3個(gè)字段。如果targetLanguage屬性218未設(shè)定為英語,則只要在sourceLanguage和targetLanguage屬性214和218中確定的語言使用一種公共字符集(例如兩者都使用拉丁字符,如西班牙語和南非荷蘭語),數(shù)據(jù)輸入方法224將把用戶輸入的文本輸入到所有3個(gè)字段中。
表II表示在主語言和地點(diǎn)使用拉丁字符集的場(chǎng)合數(shù)據(jù)是如何輸入到IString類202字段的
Table II如果希望的話,這些字段可以單個(gè)編輯,而該對(duì)象可以為分類的目的通過在sortString 206中插入一個(gè)較低排序值(例如,“AAA Hetherington”)而人為提升。
對(duì)于不使用拉丁字符集的語言,但是它使用的字符集可以聲音映射到拉丁字符集,用戶輸入通過數(shù)據(jù)輸入方法210輸入到baseString 204和sortString 206,但是該輸入的譯音的語音表示被放入altString 208中。使用譯音引擎220內(nèi)的一個(gè)內(nèi)部方法把通過的串聲音映射到altString 208的一個(gè)語音、拉丁字符表示,以把輸入的字符譯音為為不熟悉原來語言字符集的人所能懂的其它字符。
為產(chǎn)生altString 208的內(nèi)容,譯音引擎220選擇包含一個(gè)映射表的合適的Java資源文件222來產(chǎn)生放入altString 208內(nèi)的可選文本。所使用的特定資源文件的選擇基于源和目標(biāo)語言的組合。為正在執(zhí)行映射的語言的組合而命名Java資源文件222。在圖2所示例子中,ru_en.class用于映射俄語(西里爾字符)為英語(拉丁字符)。資源文件222的結(jié)構(gòu)是一張具有為外語字符和相應(yīng)拉丁字符的關(guān)聯(lián)條目的表。
一個(gè)IString對(duì)象(其中altString 208是從通過的串譯音的)的合適的構(gòu)造程序可以是<pre listing-type="program-listing"><![CDATA[/**************************************<P></P>**<dt><b>Description</b><dd>*<p>Allocate a new IString.The baseString and sortString are the*passed string,the altString is transliterated into the target*language.</p>**************************************public IString(String str){ this.baseString=new String(str); this.sortString=new String(str); if(isSameLanguage(() this.altString=new String(str); else this.altString=transmogrify(str, this.sourceLanguage, this.targetLanguage); }]]></pre>“變形”方法是上面敘述的譯音引擎220內(nèi)的內(nèi)部方法。輸入字符要被音譯成的字符集從targetLanguage屬性218確定,其在示例實(shí)施例中假定設(shè)定為英語。然而,如果給定一個(gè)合適的資源文件222的話,則字符可以在任何兩種語言之間譯音,為此,一種語言中的字符聲音映射到另一種語言的一個(gè)或者多個(gè)字符。
表III表示數(shù)據(jù)如何由數(shù)據(jù)輸入方法210輸入到IString類202中,其中的語言使用一個(gè)非拉丁字符集,其映射到拉丁字符集,諸如俄語西里爾字符。<
Table III在所示例子中,用戶輸入的文本插入baseString 204和sortString206兩者中,但是輸入到altString 208中的文本由譯音引擎220使用俄語西里爾字符對(duì)英語字符聲音映射資源表進(jìn)行選擇。baseString 204的語音表示就是這樣輸入到altString 208中,作為對(duì)不熟悉西里爾(Cyrillic)字符集的用戶的發(fā)音關(guān)鍵字。
對(duì)于不使用拉丁字符集或可以以聲音映射到拉丁字符集的字符集的語言,數(shù)據(jù)輸入方法210輸入數(shù)據(jù)到baseString 204、sortString 206和altString 208字段,其從輸入方法編輯器(IME)224導(dǎo)出。IME 224可以是一個(gè)定制的輸入方法編輯器或者是集成在由華盛頓Redmond的微軟公司開發(fā)的Windows NT操作系統(tǒng)的亞洲版本中的輸入方法編輯器。如果使用Windows NT的輸入方法編輯器,則必須從Windows NT的輸入方法編輯器的內(nèi)部數(shù)據(jù)存儲(chǔ)器中抽取合適的數(shù)據(jù)。
表IV表示對(duì)于詞音節(jié)語言諸如日語如何將數(shù)據(jù)由數(shù)據(jù)輸入方法210輸入IString類202中,詞音節(jié)語言既不使用拉丁字符集,也不使用可以聲音映射到拉丁字符集的字符集。
Table IV詞音節(jié)語言沒有字母表,但代之有具有相應(yīng)于概念和對(duì)象而不是簡(jiǎn)單聲音的符號(hào)(“表意文字”)的非常大的字符集。例如,1981年通過的日語當(dāng)用漢字表(日常用漢字)包括1945個(gè)符號(hào)。正常的計(jì)算機(jī)鍵盤不可能容納足夠多的單獨(dú)的鍵,以使該語言中每一個(gè)符號(hào)對(duì)應(yīng)一個(gè)鍵,所以使用擊鍵組合從兩個(gè)語音音節(jié)表(平假名或片假名)中的一個(gè),以及從漢字符號(hào)建立的辭典查找中選擇字符,從而以語音實(shí)現(xiàn)輸入。該處理在上述Windows NT輸入方法編輯器中實(shí)現(xiàn)。
因此,對(duì)于詞音節(jié)(logosyllabic)或表意文字語言,輸入altString 208的數(shù)據(jù)是由用戶鍵入的組成希望的表意文字的拉丁字符。輸入到sortString 206中的數(shù)據(jù)是語音拼寫希望的表意文字的音節(jié)字符,提供該表意文字的一種中間表示。輸入到baseString 204中的數(shù)據(jù)是由用戶選擇的最后的表意文字。至于上述非拉丁字符的譯音,如果targetLanguage屬性設(shè)定為非英語的一種語言,且IME 224通過在非英語的語言中的語音拼寫而支持表意文字的合成的話,則非拉丁字符可以輸入到altString 208。例如,如果IME 224通過在俄語中的語音拼寫允許日語漢字字符的合成的話,則一個(gè)IString對(duì)象202可以在baseString 204中包含日語漢字,在sortString 206中包含平假名,和在altString 208中包含西里爾字符。
從IME 224通過數(shù)據(jù)輸入方法210為輸入IString對(duì)象202而接收baseString 204、sortString 206和altString 208的一個(gè)合適的構(gòu)造程序可以是<pre listing-type="program-listing"><![CDATA[/**************************************<P></P>**<dt><b>Description</b><dd>*<p>Allocate a new IString.The baseString,sortString and*altString are entered from the IME utilizing the defaultlanguage and*locale.</p>**************************************public IString(String base,String sort, String alt, Locale src, Locale tgt){ this.baseString=base; this.sortString=sort; this.altString=alt; this.sourceLocale=src.getLocale(); this.sourceLanguage=src.getLanguage(); this.targetLocale=tgt.getLocale(); this.targetLanguage=tgt.getLanguage(); init(); }]]></pre>BaseString 204、sortString 206和altString 208的內(nèi)容從由IME 224導(dǎo)出的數(shù)據(jù)輸入到各字段,而sourceLacale 212和sourceLanguage 214的內(nèi)容從由數(shù)據(jù)正被輸入到IString對(duì)象202的主系統(tǒng)指定的缺省地點(diǎn)和語言屬性輸入。targetLacale 216和targetLanguage 218的內(nèi)容通常是為使用拉丁字符集諸如“en US”(英語-美國(guó))的語言的一個(gè)地點(diǎn)/語言代碼。
不管用以輸入文本到一個(gè)Istring類對(duì)象202中的語言,由數(shù)據(jù)輸入方法210自動(dòng)輸入到baseString 204、altString 206和sortString 208中每一個(gè)的數(shù)據(jù)可以使用其它方法進(jìn)行取代或加以修改。IString對(duì)象202的字段優(yōu)選可以被個(gè)別和獨(dú)立地編輯,允許在sortString字段206內(nèi)人為提升,如上所述,置換baseString字段204中錯(cuò)誤選擇的表意文字,或改正altString字段208中的語音拼寫。
盡管上述方法假定源和目標(biāo)語言取自主系統(tǒng)缺省值,但是為指定的源和目標(biāo)語言,使用下面的構(gòu)造程序,可以以另一種方式將數(shù)據(jù)輸入baseString 204、sortString 206和altString 208,所述構(gòu)造程序?yàn)?lt;pre listing-type="program-listing"><![CDATA[/**************************************<P></P>**<dt><b>Description</b><dd>*<p>Allocate a new IString.The baseString,sortString and*altString are entered from the IME for specified target andsource*language and locale.</p>*************************************public IString(String base,String sort,String alt,String srcLanguage,String srcLocale,String tgtLanguage,String tgtLocale){ this.baseString=base; this.sortString=sort; this.altString=alt; this.sourceLocale=srcLocale; this.sourceLanguage=srcLanguage; this.targetLocale=tgtLocale; this.targetLanguage=tgtLanguage; init(); }]]></pre>在該構(gòu)造程序中,可以指定用以選擇輸入到baseString 204、sortString 206和altString 208中的字符的源和目標(biāo)語言和地點(diǎn)??梢允褂蒙鲜龊笠粯?gòu)造程序以非主系統(tǒng)缺省語言建立IString對(duì)象202,或者在這樣一個(gè)主系統(tǒng)中建立該IString對(duì)象,在該主系統(tǒng)中從另一系統(tǒng)接收IString對(duì)象202的數(shù)據(jù)以及建立一個(gè)本地實(shí)例。
應(yīng)該注意,譯音引擎220和消息傳送方法226不一定在IString類202內(nèi)實(shí)現(xiàn),如圖2中所示,而IME方法220不需單獨(dú)實(shí)現(xiàn)。反之,譯音引擎220和消息傳送方法226可以在適當(dāng)構(gòu)造的單獨(dú)的子類內(nèi)實(shí)現(xiàn),和/或在需要時(shí)由IString類202調(diào)用,而IME 224可以作為在IString類202內(nèi)的方法實(shí)現(xiàn)。
譯音引擎220和IME 224僅由數(shù)據(jù)輸入方法210請(qǐng)求在某些地點(diǎn)和語言屬性設(shè)置下為IString類202對(duì)象收集輸入數(shù)據(jù)。另外,通過調(diào)用適當(dāng)?shù)臉?gòu)造程序,數(shù)據(jù)可以以程序方式輸入進(jìn)baseString 204、sortString 206和altString 208中??梢杂沙绦蛟谶\(yùn)行時(shí)調(diào)用以程序方式獲得和設(shè)置IString 202內(nèi)字段的方法包括<pre listing-type="program-listing"><![CDATA[/**************************************<P></P>**<dt><b>Description</b><dd>*<p>Get the IString baseString.</p>**@returns str String containing the base string**************************************public String getBaseString() { return this.baseString; }]]></pre>這一方法為IString對(duì)象202返回baseString 204的內(nèi)容。類似的方法返回sortString 206和altString 208的內(nèi)容<pre listing-type="program-listing"><![CDATA[/**************************************<P></P>**<dt><b>Description</b><dd>*<p>Get the IString sortString.</p>**@returns str String containing the sort string**************************************public String getSortString() { return this.sortString; } /************************************ * *<P></P> **<dt><b>Description</b><dd>*<p>Get the IString altString.</p>**@returns str String containing the alt string**************************************public String getAltString() { return thi s.altString; }]]></pre>該方法還包括設(shè)置baseString 204<pre listing-type="program-listing"><![CDATA[/**************************************<P></P>**<dt><b>Description</b><dd>*<p>Set the IString baseString.</p>**@param str String containing the base string**************************************public void setBaseString(String sBase) { this.baseString=sBase; }]]></pre>以及sortString 206和altString 208<pre listing-type="program-listing"><![CDATA[/**************************************<P></P>**<dt><b>Description</b><dd>*<p>Set the IString sortString.</p>**@param str String containing the sort string**************************************public void setSortString(String sSrt) { this.sortString=sSrt;}/**************************************<P></P>**<dt><b>Description</b><dd>*<p>Set the IString altString.</p>**@param str String containing the alt string**************************************public void setAltString(String sAlt) { this.altString=sAlt; }]]></pre>在為IString對(duì)象202獲得和設(shè)置baseString 204、sortString 206和altString 208之外,可能需要程序來獲得或設(shè)置一個(gè)IString對(duì)象202的顯示地點(diǎn)或語言。因此,提供其它方法以允許一個(gè)程序獲得和/或設(shè)置IString數(shù)據(jù)的該地點(diǎn)或語言屬性<pre listing-type="program-listing"><![CDATA[/**************************************<P></P>**<dt><b>Description</b><dd>*<p>Get the locale of the IString data.</p>**@returns loc Locale containing the locale of the data**************************************public Locale getLocale() { Locale loc=newLocale(this.sourceLanguage,this.sourceLocale); return loc; }/**************************************<P></P>**<dt><b>Description</b><dd>*<p>Set the locale of the IString data.</p>**@param loc Locale of the data**************************************public void setLocale(Locale loc) { this.sourceLocale=loc.getLocale(); this.sourceLanguage=loc.getLanguage(); }/**************************************<P></P>**<dt><b>Description</b><dd>*<p>Get the display language of the IString data.</p>**@returns Display language of the data**************************************public String getDisplayLanguage() { Locale loc=newLocale(this.sourceLanguage,this.sourceLocale); return loc.getDisplayLanguage(); }/**************************************<P></P>**<dt><b>Description</b><dd>*<p>Get the display locale of the IString data.</p>**@returns Display locale of the data**************************************public String getDisplayLocale(){ if(this.sourceLanguage==null&&this.sourceLocale==null) return null; else{ Locale loc=newLocale(this.sourceLanguage,this.sourceLocale); return loc.getDisplayLocale(); }}]]></pre>雖然這些方法可用,但是IString類202優(yōu)選顯示一個(gè)“黑盒子”的行為,使得程序員/用戶不需知道任何關(guān)于為IString類202實(shí)現(xiàn)的方法。IString類202只作為一種數(shù)據(jù)類型出現(xiàn),該種數(shù)據(jù)類型封裝關(guān)于baseString 204的額外信息,另外封裝從一種字符集轉(zhuǎn)變字符為另一種字符集的一些方法。對(duì)于sortString字段206或altString字段208在baseString 204之外或代替baseString 204要陳列在用戶前的特殊場(chǎng)合,無論僅為編輯還是顯示,可以提供一個(gè)單獨(dú)的控件集。
在本發(fā)明中,IString類202被用來有效地傳輸人類語言數(shù)據(jù),超越使用不同語言的系統(tǒng)。BaseString 204的內(nèi)容提供以發(fā)起該IString對(duì)象202的系統(tǒng)的缺省語言的文本的本地表示。然而,對(duì)于參與與以不同人類語言運(yùn)行的另一系統(tǒng)交換數(shù)據(jù)的每一系統(tǒng),一個(gè)IString對(duì)象202的targetLacale屬性216和targetLanguage屬性218優(yōu)選設(shè)定為一個(gè)共同值(例如,targetLocale=“US”,targetLanguage=“en”)。于是,altString208的內(nèi)容將包含文本串的一個(gè)共同的、跨語言的表示。在接收一個(gè)對(duì)象的系統(tǒng)的缺省語言與baseString 204的內(nèi)容的語言不同的系統(tǒng)中,IString類對(duì)象202可以自動(dòng)切換到表示altString 208的內(nèi)容,作為要被顯示或處理的文本串。
參考圖3,它表示按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的機(jī)制的圖,該機(jī)制提供對(duì)顯示和編輯各個(gè)多字段文本類對(duì)象或多字段文本類對(duì)象的離散集的控制。為使所有Java抽象窗口工具包(Jave AbstractWindowing Toolkit-AWT)控件使用和顯示IString信息,定義一個(gè)文本管理器類、IStringControl 302和IString控制器接口312。IString控制器接口312截取所有對(duì)IString對(duì)象304的顯示請(qǐng)求,響應(yīng)這種顯示請(qǐng)求把當(dāng)前顯示字段的內(nèi)容傳遞給一個(gè)控件。從而IString控制器接口312允許傳統(tǒng)的控件顯示Istring對(duì)象304的內(nèi)容,而不需專門的顯示控件。
IStringControl 302的構(gòu)造程序取IString類304和Java基礎(chǔ)類(Java Foundation Class-JFC)控件306、菜單項(xiàng)308或任何具有一個(gè)setText()方法的其它控件310作為其參數(shù)。IStringControl 302負(fù)責(zé)管理在它所管理的控件中哪一個(gè)IString字段(baseString、sortString,或altString)可見,以及負(fù)責(zé)實(shí)現(xiàn)輸入或改變IString對(duì)象304中文本的方法。IStringControl 302介入所有對(duì)任何控件的setText()方法的調(diào)用,執(zhí)行必需的處理,以使用一個(gè)控件輸入文本到IString對(duì)象304的一個(gè)字段中。
對(duì)于在一個(gè)用戶接口對(duì)話內(nèi)的文本控件的每一實(shí)例,代替在JFC控件上調(diào)用setText()方法,與一個(gè)IStringControl 302一起建立一個(gè)IString控制器接口312和JFC控件以管理該JFC控件。這允許包括一些單個(gè)值、基于文本的控件(例如JLable或JTextField)的對(duì)話或框以顯示Istring值。另外,代替取JFC控件作為其一個(gè)構(gòu)造程序參數(shù),Istring Control 302可以取一個(gè)java.awt.Component,并尋找使用內(nèi)檢的setText()方法,使IString支持可能普遍存在。
還使用配置和詢問IStringControl 302的方法定義IString控制器(“IStringControlActions”)接口312。該方法包括<pre listing-type="program-listing"><![CDATA[Public void setText(IString text),Public IString getText(),Public void setVisibleField(int field),Public int getVisibleField(),SetPopupEnabled(boolean enabled),和IsPopupEnabled().]]></pre>GetText()和getVisibleField()方法在控制器接口312內(nèi)不空,以允許控制器接口312傳遞當(dāng)前顯示字段(“visibleField”)的內(nèi)容到一個(gè)傳統(tǒng)控件,包括諸如JLabel控件306的JavaAWT控件,諸如菜單項(xiàng)308的JFC控件,或包含getText()方法的任何其它控件310。
在控制器接口312內(nèi)的setText()和setVisibleField()方法置為空,因?yàn)橐粋€(gè)特殊的IStringControl 302應(yīng)該介入對(duì)在一個(gè)傳統(tǒng)控件內(nèi)的一個(gè)setText()方法的任何調(diào)用。上面所列方法內(nèi)的“字段”參數(shù)要么是IStringControl.BASE、IStringControl.SORT、或者是IStringControl.ALT。上面所列的后兩種方法確定彈出顯示是否以IString字段內(nèi)容表示。
另外,可以定義類似于ButtonGroup和在例子中被叫作IStringControlGroup的分組類(grouping class)314,它實(shí)現(xiàn)IStringControlOption方法。IStringControl 302的實(shí)例316可以加在分組類314上以產(chǎn)生一個(gè)上下文,諸如一個(gè)對(duì)話或一個(gè)完整的應(yīng)用,其內(nèi)可以立即配置所有控件。使用圖3所示并在上面說明的結(jié)構(gòu),應(yīng)用程序,甚至程序員只需執(zhí)行非常少的額外工作,便可在一個(gè)應(yīng)用中使用IString數(shù)據(jù),盡管如果需要的話,可以使用用于特殊操作的豐富的方法集。
控制器接口312還提供一種機(jī)制,用于通過消息傳送改變IString數(shù)據(jù)的顯示。Istring數(shù)據(jù)對(duì)象304,控件302、306、308和310,以及組控制器314所有都可以作為具有控制器接口312的聽眾登記,聽取包含語言和/或地點(diǎn)代碼的消息,諸如語言改變消息,地點(diǎn)改變消息,或顯示改變消息。語言和地點(diǎn)改變消息可以改變基礎(chǔ)系統(tǒng)內(nèi)語言和地點(diǎn)屬性的設(shè)置,而顯示改變消息可以簡(jiǎn)單地改變用以選擇IString數(shù)據(jù)顯示字段的語言和/或地點(diǎn)(單獨(dú)地或聯(lián)合地),而不改變基礎(chǔ)系統(tǒng)語言和地點(diǎn)屬性。
語言、地點(diǎn)、和顯示改變消息或者由用戶通過和控制器接口312的對(duì)話,或者通過發(fā)送一個(gè)合適消息的應(yīng)用程序起動(dòng)。當(dāng)選擇一個(gè)新的語言和/或地點(diǎn)時(shí),所有允許的客戶可以通過重新加載人類語言和重新格式化地點(diǎn)特定的數(shù)據(jù)選擇對(duì)該消息反應(yīng)。語言、地點(diǎn)和顯示改變消息可以調(diào)用圖2所示IString對(duì)象202內(nèi)的一個(gè)或者多個(gè)消息傳送方法224。
當(dāng)接收到一個(gè)語言改變消息時(shí),IString對(duì)象302邏輯操作它們的數(shù)據(jù)。一些IString對(duì)象302對(duì)于語言的改變可以沒有行為改變,但是對(duì)于地點(diǎn)改變要有行為改變。例如,數(shù)字?jǐn)?shù)據(jù)顯示將依賴于所選擇的地點(diǎn)(例如從美國(guó)到歐洲)改變它的表示格式,但是數(shù)字不改變。其它對(duì)象對(duì)于語言和地點(diǎn)兩者都有行為改變,如在文本日期顯示中既要改變表示格式,也要改變?cè)牡脑旅凸ぷ魅彰?br>
參考圖4A-4B,它表示為按照本發(fā)明的優(yōu)選實(shí)施例控制多字段文本類對(duì)象顯示處理的用戶接口圖。圖4A表示該用戶接口,其中對(duì)象名包含在一個(gè)多字段文本串對(duì)象內(nèi),其第一字段的內(nèi)容被顯示,它在例示實(shí)施例中是包含語音拼寫baseString(未示出)漢字符號(hào)的片假名字符的sortString字段。
可以使用圖3所示以及上面敘述的控件來控制多字段文本串對(duì)象的顯示。圖4B表示顯示同一對(duì)象的用戶接口,其中該對(duì)象名的顯示字段被改變?yōu)閍ltString字段的內(nèi)容。
現(xiàn)在參考圖5A-5B,圖中表示按照本發(fā)明的優(yōu)選實(shí)施例選擇或編輯多字段文本串對(duì)象的一個(gè)當(dāng)前顯示字段的用戶接口控件。圖5A-5B要連同圖2和圖3閱讀??丶?02優(yōu)選是一個(gè)專門的IString控件302,能夠請(qǐng)求一個(gè)IString對(duì)象內(nèi)的任何字段的內(nèi)容。
控件502包括一個(gè)顯示區(qū)域504,用于顯示一個(gè)IString對(duì)象202或304的當(dāng)前顯示字段的內(nèi)容,還包括一個(gè)選擇控件506,用于起動(dòng)選擇一個(gè)不同的字段用于顯示。IString對(duì)象202或304的當(dāng)前被選擇的顯示字段的內(nèi)容可以由getVisibleField方法檢索用于顯示。IString 202或304內(nèi)的visibleField參數(shù)確定baseString 204、sortString 206和altString 208中哪一個(gè)字段是當(dāng)前被選擇顯示的。根據(jù)visibleField參數(shù),getVisibleField方法對(duì)IString對(duì)象202或304有效地執(zhí)行g(shù)etText(field)處理,以檢索當(dāng)前所選擇字段內(nèi)的用于顯示的串,其中“field”參數(shù)是ISstring.BASE,IString.SORT,和IString.ALT。
選擇控件506可以是常規(guī)下指箭頭,其由對(duì)選擇控件506“點(diǎn)擊”而驅(qū)動(dòng),操作指點(diǎn)設(shè)備,直到光標(biāo)落在選擇控件506上,然后驅(qū)動(dòng)該點(diǎn)擊設(shè)備或在該點(diǎn)擊設(shè)備上的一個(gè)特別的按鈕。當(dāng)被驅(qū)動(dòng)后,選擇控件506產(chǎn)生一個(gè)下拉框508,它包含IString對(duì)象202或304的所有3個(gè)字段,其順序?yàn)閎aseString 204,sortString206和altString 208。所有3個(gè)字段的內(nèi)容可以通過對(duì)IString.BASE、IString.SORT、和IString.ALT執(zhí)行多次getText()方法而檢索。然后,這3個(gè)串可以作為下拉框508內(nèi)的一個(gè)有序表按照現(xiàn)有技術(shù)顯示。
和常規(guī)下拉菜單和下拉框一樣,下拉框508內(nèi)光標(biāo)當(dāng)前位于的條目由條510加亮。用戶可以通過點(diǎn)擊下拉框508內(nèi)希望的條目選擇一個(gè)不同的字段顯示。然后控件502執(zhí)行setVisibleText方法以改變VisibleText參數(shù)為IString.BASE、IString.SORT、或IString.ALT作為適合的參數(shù),然后以新選擇的當(dāng)前顯示字段的內(nèi)容重新加載顯示區(qū)域504。
用戶通過在要編輯的字段顯示時(shí)雙擊顯示區(qū)域504可以編輯當(dāng)前選擇的顯示字段的內(nèi)容而不改變剩余字段的內(nèi)容??梢园魏巫址挠脩糁付ǖ奈谋敬詓etText()方法存儲(chǔ)在當(dāng)前顯示的字段內(nèi)。為編輯當(dāng)前未顯示的字段的內(nèi)容,用戶使用選擇控件506選擇要編輯的字段作為當(dāng)前顯示字段,然后在顯示區(qū)域504內(nèi)編輯該字段。
控件502可以在狀態(tài)條內(nèi)適當(dāng)?shù)貙?shí)現(xiàn),或者如圖5B所示,可以與其它控件集成在一個(gè)對(duì)話框512內(nèi)。如圖所示,其它控件可以包括例如單選按鈕514,其控制選擇控件506是允許還是被禁止和顯示區(qū)域504的內(nèi)容是只讀還是可編輯。以這種方式,單獨(dú)或結(jié)合使用選擇控件506和顯示區(qū)域504的相應(yīng)參數(shù),控件502可以防止用戶改變一個(gè)特定IString對(duì)象的當(dāng)前顯示字段,防止編輯一特定IString對(duì)象的任何字段的內(nèi)容,或者防止編輯一特定IString對(duì)象內(nèi)的一個(gè)特定字段的內(nèi)容。
現(xiàn)在參考圖6,它表示按照本發(fā)明的優(yōu)選實(shí)施例為有選擇地顯示或編輯一個(gè)多字段文本串內(nèi)任何字段的用戶控件操作的高層流程圖。所示處理是操作圖5所示控件502的處理。該過程在步驟602開始,它表示驅(qū)動(dòng)用戶控件502來顯示一個(gè)IString對(duì)象,然后前進(jìn)到步驟604,它表示決定哪一個(gè)字段是當(dāng)前顯示字段并在該控件內(nèi)顯示該字段的內(nèi)容。
接著過程前進(jìn)到步驟606,它表示當(dāng)用戶驅(qū)動(dòng)選擇控件506時(shí),判定是否啟動(dòng)改變顯示字段。如果是,則過程前進(jìn)到步驟608,它表示在下拉框508內(nèi)以順序顯示該IString對(duì)象的所有字段,和如果選擇一個(gè)新字段作為當(dāng)前顯示字段的話,改變顯示窗口504的內(nèi)容。一旦用戶選擇一個(gè)字段顯示后,下拉框508即被清除。
如果未啟動(dòng)當(dāng)前顯示字段的改變,則過程前進(jìn)到步驟610,它表示當(dāng)用戶雙擊顯示窗口504時(shí),判定是否啟動(dòng)編輯當(dāng)前顯示字段的內(nèi)容。如果是,則過程前進(jìn)到步驟612,它表示根據(jù)該IString的源和目標(biāo)語言和被編輯的字段,使用一個(gè)簡(jiǎn)單的編輯程序、譯音引擎、或IME,編輯當(dāng)前顯示字段的內(nèi)容。
無論從步驟608還是612,處理接著前進(jìn)到步驟614,它表示判定一個(gè)具有控件502的IString對(duì)象的顯示是否結(jié)束。如果沒有,則處理返回到步驟606,等待用戶進(jìn)一步啟動(dòng)改變或編輯一個(gè)顯示字段。然而,如果結(jié)束,該過程前進(jìn)到步驟616,它表示該過程處于空閑狀態(tài),直到使用控件502啟動(dòng)一個(gè)IString對(duì)象的另一次顯示。
本發(fā)明的用戶控件允許用戶通過在一個(gè)IString對(duì)象的不同字段之間切換視圖來觀看文本串的不同表示而獲得該IString類的好處。不能根據(jù)存儲(chǔ)在當(dāng)前顯示字段內(nèi)的表示識(shí)別、理解和發(fā)音某文本串的用戶可以轉(zhuǎn)變?yōu)榱硪环N表示,諸如該文本串的語音拼寫。這允許以一種語言輸入的文本串被不熟悉該種語言(該文本串以該語言輸入)的用戶所識(shí)別、理解和讀出。
重要的是要注意,雖然本發(fā)明是以一個(gè)完全功能的數(shù)據(jù)處理系統(tǒng)和/或網(wǎng)絡(luò)上下文敘述的,但是熟悉本技術(shù)領(lǐng)域的人理解,本發(fā)明的機(jī)制能夠以計(jì)算機(jī)可用指令介質(zhì)形式以各種形式分發(fā),以及不管用于實(shí)際執(zhí)行該種分發(fā)的信號(hào)承載介質(zhì)的特定類型,本發(fā)明可同樣適用。計(jì)算機(jī)可用介質(zhì)的例子包括非易失、硬編碼類型介質(zhì),諸如只讀存儲(chǔ)器(ROM)或可擦除電可編程只讀存儲(chǔ)器(EEPROM),可記錄型介質(zhì),諸如軟盤,硬盤驅(qū)動(dòng)器和CD-ROM,以及傳輸型介質(zhì),諸如數(shù)字和模擬通信鏈路。
盡管本發(fā)明特別是參考優(yōu)選實(shí)施例圖示和說明的,但是熟悉本技術(shù)領(lǐng)域的人將理解,可以對(duì)其進(jìn)行形式和細(xì)節(jié)的各種改變而不離開本發(fā)明的精神和范圍。
權(quán)利要求
1.一種改變多字段文本串顯示的方法,包括在用戶控件和具有多個(gè)單獨(dú)字段的一個(gè)多字段文本串對(duì)象之間提供接口,所述多個(gè)單獨(dú)字段的每一個(gè)字段包含一個(gè)文本串的一個(gè)不同表示;在用戶控件內(nèi)顯示所述多字段文本串對(duì)象的一個(gè)當(dāng)前顯示字段的內(nèi)容;提供一個(gè)選擇控件,用于有選擇地改變?cè)摱嘧侄挝谋敬畬?duì)象的當(dāng)前顯示字段;響應(yīng)選擇控件的用戶驅(qū)動(dòng),顯示所述多字段文本串對(duì)象內(nèi)所有字段內(nèi)容作為用戶選擇表。
2.如權(quán)利要求1的方法,其中,在用戶控件和具有每一個(gè)字段包含一個(gè)文本串的一個(gè)不同表示的多個(gè)單獨(dú)字段的一個(gè)多字段文本串對(duì)象之間提供接口的步驟進(jìn)一步包括存儲(chǔ)包含第一字符集的字符的一個(gè)第一字符串,所述第一字符集由第一人類語言使用來表示所述多字段文本串對(duì)象的一個(gè)第一字段內(nèi)使用該第一人類語言的文本串;存儲(chǔ)包含第二字符集的字符的一個(gè)第二字符串,所述第二字符集由第二人類語言使用來表示所述多字段文本串對(duì)象的一個(gè)第二字段內(nèi)使用該第二人類語言的文本串。
3.如權(quán)利要求1的方法,其中,在用戶控件中顯示多字段文本串對(duì)象的一個(gè)當(dāng)前顯示字段的內(nèi)容的步驟進(jìn)一步包括標(biāo)識(shí)該多字段文本串對(duì)象的哪一個(gè)字段是當(dāng)前顯示字段;從標(biāo)識(shí)的字段中檢索一個(gè)字符串;在所述用戶控件內(nèi)的一個(gè)顯示區(qū)域顯示檢索到的字符串。
4.如權(quán)利要求1的方法,進(jìn)一步包括響應(yīng)用戶從表中選擇多字段文本串對(duì)象的一個(gè)字段作為一個(gè)新的當(dāng)前顯示字段,改變?cè)摱嘧侄挝谋敬畬?duì)象內(nèi)的當(dāng)前顯示字段為新的當(dāng)前顯示字段。
5.如權(quán)利要求4的方法,進(jìn)一步包括從該新的當(dāng)前顯示字段中檢索一個(gè)字符串;在用戶控件的一個(gè)顯示區(qū)域顯示檢索到的字符串。
6.如權(quán)利要求1的方法,進(jìn)一步包括在用戶控件內(nèi)的一個(gè)顯示區(qū)域顯示當(dāng)前顯示字段的一個(gè)字符串;在該用戶控件內(nèi)提供編輯控件用于有選擇地編輯當(dāng)前顯示字段的內(nèi)容;響應(yīng)該選擇控件的用戶驅(qū)動(dòng),接收一個(gè)新字符串以便輸入到當(dāng)前顯示字段;在所述多字段文本串對(duì)象內(nèi)的當(dāng)前顯示字段內(nèi)存儲(chǔ)該新字符串。
7.如權(quán)利要求1的方法,其中,顯示多字段文本串對(duì)象內(nèi)的所有字段內(nèi)容作為用戶選擇表的步驟進(jìn)一步包括顯示多字段文本串對(duì)象內(nèi)包含由第一人類語言使用的字符的一個(gè)第一字段的第一字符串,所述文本串以該第一人類語言輸入;顯示包含聲音映射到所述第一字符串內(nèi)字符的那些字符的所述多字段文本串對(duì)象的一個(gè)第二字段的一個(gè)第二字符串。
8.如權(quán)利要求1的方法,其中,顯示多字段文本串對(duì)象內(nèi)的所有字段內(nèi)容作為用戶選擇表的步驟進(jìn)一步包括顯示多字段文本串對(duì)象內(nèi)包含由第一人類語言使用的字符的一個(gè)第一字段的一個(gè)第一字符串,所述文本串以該第一人類語言輸入;顯示包含由第一人類語言語音拼寫所述文本串使用的那些字符的所述多字段文本串對(duì)象的一個(gè)第二字段的一個(gè)第二字符串;顯示包含由第二人類語言語音拼寫所述文本串使用的那些字符的所述多字段文本串對(duì)象的一個(gè)第三字段的一個(gè)第三字符串。
9.改變多字段文本串顯示的系統(tǒng),包括在用戶控件和具有多個(gè)單獨(dú)字段的一個(gè)多字段文本串對(duì)象之間提供接口的設(shè)備,所述多個(gè)單獨(dú)字段的每一個(gè)字段包含一個(gè)文本串的一個(gè)不同表示;在用戶控件內(nèi)顯示所述多字段文本串對(duì)象的一個(gè)當(dāng)前顯示字段內(nèi)容的設(shè)備;提供選擇控件的設(shè)備,用于有選擇地改變?cè)摱嘧侄挝谋敬畬?duì)象的當(dāng)前顯示字段;響應(yīng)選擇控件的用戶驅(qū)動(dòng)、顯示所述多字段文本串對(duì)象內(nèi)所有字段的內(nèi)容作為用戶選擇表的設(shè)備。
10.如權(quán)利要求9的系統(tǒng),其中,在用戶控件和具有每一個(gè)字段包含一個(gè)文本串的一個(gè)不同表示的多個(gè)單獨(dú)字段的一個(gè)多字段文本串對(duì)象之間提供接口的設(shè)備進(jìn)一步包括存儲(chǔ)包含第一字符集的字符的一個(gè)第一字符串的設(shè)備,所述第一字符集由第一人類語言使用來表示所述多字段文本串對(duì)象的一個(gè)第一字段內(nèi)使用該第一人類語言的文本串;存儲(chǔ)包含第二字符集的字符的一個(gè)第二字符串的設(shè)備,所述第二字符集由第二人類語言使用來表示所述多字段文本串對(duì)象的一個(gè)第二字段內(nèi)使用該第二人類語言的文本串。
11.如權(quán)利要求9的系統(tǒng),其中,在用戶控件中顯示多字段文本串對(duì)象的一個(gè)當(dāng)前顯示字段的內(nèi)容的設(shè)備進(jìn)一步包括標(biāo)識(shí)該多字段文本串對(duì)象的哪一個(gè)字段是當(dāng)前顯示字段的設(shè)備;從標(biāo)識(shí)的字段中檢索一個(gè)字符串的設(shè)備;在所述用戶控件內(nèi)的一個(gè)顯示區(qū)域顯示檢索到的字符串的設(shè)備。
12.如權(quán)利要求9的系統(tǒng),進(jìn)一步包括響應(yīng)用戶從該表中選擇多字段文本串對(duì)象的一個(gè)字段作為一個(gè)新的當(dāng)前顯示字段、改變?cè)摱嘧侄挝谋敬畬?duì)象內(nèi)的當(dāng)前顯示字段為新當(dāng)前顯示字段的設(shè)備。
13.如權(quán)利要求12的系統(tǒng),進(jìn)一步包括從新的當(dāng)前顯示字段中檢索一個(gè)字符串的設(shè)備;在用戶控件的一個(gè)顯示區(qū)域顯示檢索到的字符串的設(shè)備。
14.如權(quán)利要求9的系統(tǒng),進(jìn)一步包括在用戶控件內(nèi)的一個(gè)顯示區(qū)域顯示當(dāng)前顯示字段的一個(gè)字符串的設(shè)備;在該用戶控件內(nèi)提供編輯控件用于有選擇地編輯當(dāng)前顯示字段的內(nèi)容的設(shè)備;響應(yīng)該選擇控件的用戶驅(qū)動(dòng),接收一個(gè)新字符串以便輸入到當(dāng)前顯示字段的設(shè)備;在所述多字段文本串對(duì)象內(nèi)的當(dāng)前顯示字段內(nèi)存儲(chǔ)該新字符串的設(shè)備。
15.如權(quán)利要求9的系統(tǒng),其中,顯示多字段文本串對(duì)象內(nèi)的所有字段內(nèi)容作為用戶選擇表的設(shè)備進(jìn)一步包括顯示多字段文本串對(duì)象內(nèi)包含由第一人類語言使用的字符的一個(gè)第一字段的第一字符串的設(shè)備,所述文本串以該第一人類語言輸入;顯示包含聲音映射到所述第一字符串內(nèi)字符的那些字符的所述多字段文本串對(duì)象的一個(gè)第二字段的一個(gè)第二字符串的設(shè)備。
16.如權(quán)利要求9的系統(tǒng),其中,顯示多字段文本串對(duì)象內(nèi)的所有字段內(nèi)容作為用戶選擇表的設(shè)備進(jìn)一步包括顯示多字段文本串對(duì)象內(nèi)包含由第一人類語言使用的字符的一個(gè)第一字段的一個(gè)第一字符串的設(shè)備,所述文本串以該第一人類語言輸入;顯示包含由第一人類語言語音拼寫所述文本串使用的那些字符的所述多字段文本串對(duì)象的一個(gè)第二字段的一個(gè)第二字符串的設(shè)備;顯示包含由第二人類語言語音拼寫所述文本串使用的那些字符的所述多字段文本串對(duì)象的一個(gè)第三字段的一個(gè)第三字符串的設(shè)備。
17.在一種計(jì)算機(jī)可用介質(zhì)內(nèi)為改變一個(gè)多字段文本串顯示的計(jì)算機(jī)程序產(chǎn)品,包括在用戶控件和具有多個(gè)單獨(dú)字段的一個(gè)多字段文本串對(duì)象之間提供接口的指令,所述多個(gè)單獨(dú)字段的每一個(gè)字段包含一個(gè)文本串的一個(gè)不同表示;在用戶控件內(nèi)顯示所述多字段文本串對(duì)象的一個(gè)當(dāng)前顯示字段內(nèi)容的指令;提供選擇控件的指令,用于有選擇地改變?cè)摱嘧侄挝谋敬畬?duì)象的當(dāng)前顯示字段的指令;響應(yīng)選擇控件的用戶驅(qū)動(dòng)、顯示所述多字段文本串內(nèi)所有字段內(nèi)容作為用戶選擇表的指令。
18.如權(quán)利要求17的計(jì)算機(jī)程序產(chǎn)品,其中,在用戶控件和具有每一個(gè)字段包含一個(gè)文本串的一個(gè)不同表示的多個(gè)單獨(dú)字段的一個(gè)多字段文本串對(duì)象之間提供接口的指令進(jìn)一步包括存儲(chǔ)包含第一字符集的字符的一個(gè)第一字符串的指令,所述第一字符集由第一人類語言使用來表示所述多字段文本串對(duì)象的一個(gè)第一字段內(nèi)使用該第一人類語言的文本串;存儲(chǔ)包含第二字符集的字符的一個(gè)第二字符串的指令,所述第二字符集由第二人類語言使用來表示所述多字段文本串對(duì)象的一個(gè)第二字段內(nèi)使用該第二人類語言的文本串。
19.如權(quán)利要求17的計(jì)算機(jī)程序產(chǎn)品,其中,在用戶控件中顯示多字段文本串對(duì)象的一個(gè)當(dāng)前顯示字段的內(nèi)容的指令進(jìn)一步包括標(biāo)識(shí)該多字段文本串對(duì)象的哪一個(gè)字段是當(dāng)前顯示字段的指令;從標(biāo)識(shí)的字段中檢索一個(gè)字符串的指令;在所述用戶控件內(nèi)的一個(gè)顯示區(qū)域顯示檢索到的字符串的指令。
20.如權(quán)利要求17的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括響應(yīng)用戶從表中選擇多字段文本串對(duì)象的一個(gè)字段作為一個(gè)新的當(dāng)前顯示字段、改變?cè)摱嘧侄挝谋敬畬?duì)象內(nèi)的當(dāng)前顯示字段為新的當(dāng)前顯示字段的指令。
21.如權(quán)利要求20的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括從新的當(dāng)前顯示字段中檢索一個(gè)字符串的指令;在用戶控件的一個(gè)顯示區(qū)域顯示檢索到的字符串的指令。
22.如權(quán)利要求17的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括在用戶控件內(nèi)的一個(gè)顯示區(qū)域顯示當(dāng)前顯示字段的一個(gè)字符串的指令;在該用戶控件內(nèi)提供編輯控件用于有選擇地編輯當(dāng)前顯示字段內(nèi)容的指令;響應(yīng)該選擇控件的用戶驅(qū)動(dòng)、接收一個(gè)新字符串以便輸入到當(dāng)前顯示字段的指令;在所述多字段文本串對(duì)象內(nèi)的當(dāng)前顯示字段內(nèi)存儲(chǔ)該新字符串的指令。
23.如權(quán)利要求17的計(jì)算機(jī)程序產(chǎn)品,其中,顯示多字段文本串對(duì)象內(nèi)的所有字段內(nèi)容作為用戶選擇表的指令進(jìn)一步包括顯示多字段文本串對(duì)象內(nèi)包含由第一人類語言使用的字符的一個(gè)第一字段的第一字符串的指令,所述文本串以該第一人類語言輸入;顯示包含聲音映射到所述第一字符串內(nèi)字符的那些字符的所述多字段文本串對(duì)象的一個(gè)第二字段的一個(gè)第二字符串的指令。
24.如權(quán)利要求17的計(jì)算機(jī)程序產(chǎn)品,其中,顯示多字段文本串對(duì)象內(nèi)的所有字段內(nèi)容作為用戶選擇表的指令進(jìn)一步包括顯示多字段文本串對(duì)象內(nèi)包含由第一人類語言使用的字符的一個(gè)第一字段的一個(gè)第一字符串的指令,所述文本串以該第一人類語言輸入;顯示包含由第一人類語言語音拼寫所述文本串使用的那些字符的所述多字段文本串對(duì)象的一個(gè)第二字段的一個(gè)第二字符串的指令;顯示包含由第二人類語言語音拼寫所述文本串使用的那些字符的所述多字段文本串對(duì)象的一個(gè)第三字段的一個(gè)第三字符串的指令。
全文摘要
提供一種用戶控件,用以有選擇地顯示和/或編輯多字段文本串對(duì)象內(nèi)的任何字段的內(nèi)容,該多字段文本串對(duì)象具有多個(gè)單獨(dú)的字段,每一字段包括一個(gè)文本串的不同表示。這樣各字段包含了單一文本串的標(biāo)識(shí)、意義、和發(fā)音信息。在用戶控件和多字段文本串對(duì)象之間的用戶接口允許對(duì)該多字段文本串對(duì)象執(zhí)行用戶控件內(nèi)的方法。多字段文本串對(duì)象當(dāng)前選擇的顯示字段的內(nèi)容連同一個(gè)選擇控件一起顯示??梢则?qū)動(dòng)該選擇控件以顯示多字段文本串內(nèi)所有字段內(nèi)容的一個(gè)有序表,和通過選擇該顯示的表的一個(gè)字段改變當(dāng)前顯示字段。
文檔編號(hào)G06F9/44GK1259706SQ99124769
公開日2000年7月12日 申請(qǐng)日期1999年12月9日 優(yōu)先權(quán)日1998年12月15日
發(fā)明者D·J·赫瑟林頓, D·B·庫彌爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司