(57)【特許請求の範囲】
【請求項１】
コンピューターシステム上における、現地語化リソースから文法的に正確なテキストを取得するための方法であって、
取得されるべきテキストの内容を指定するコンテンツインジケーターを受け取るステップと、
前記内容に限定を課すコンテンツリミッターを受け取るステップと、
前記現地語化リソースから前記コンテンツインジケーターに対応する文字列を選択するステップであって、前記現地語化リソースは、複数の文字列を含み、各文字列は、連続した１又は複数の文字を含み、各文字列は、
前記コンテンツインジケーターに関連付けられた、前記コンテンツリミッターと比較される第１範囲であって、前記文字列のうちの第１部分文字列として区切られる、第１範囲と、
前記第１範囲に関連付けられた、前記コンテンツリミッターが前記第１範囲内にある場合に前記コンピューターシステムのユーザーインターフェイス上に提示される第１テキストセグメントであって、前記第１部分文字列は、前記第１テキストセグメントを指定する第１トークンに隣接する、第１テキストセグメントと、
前記コンテンツインジケーターに関連付けられた、前記コンテンツリミッターと比較される第２範囲であって、前記文字列のうちの第２部分文字列として区切られる、第２範囲と、
前記第２範囲に関連付けられた、前記コンテンツリミッターが前記第２範囲内にある場合に前記ユーザーインターフェイス上に提示される第２テキストセグメントであって、前記第２部分文字列は、前記第２テキストセグメントを指定する第２トークンに隣接する、第２テキストセグメントと、
を含む、ステップと、
前記選択された文字列を解析して、前記第１及び第２範囲のどちらが前記コンテンツリミッターと一致するかを決定するステップと、
前記文字列から、前記決定された範囲に関連するテキストセグメントを取得するステップと、
を含む方法。
【請求項２】
前記コンテンツリミッターは、前記テキストの中に記述されたアイテムの数又は量を特定し、前記第１及び第２範囲の各々は、数値範囲である、請求項１に記載の方法。
【請求項３】
前記第１及び第２範囲は、前記コンテンツリミッターと比較される所与の文字列の複数の範囲のうちの１つであり、前記第１及び第２テキストセグメントは、前記ユーザーインターフェイス上に提示される関連する複数のテキストセグメントのうちの１つであり、前記所与の文字列の異なるテキストセグメントは、アイテムを、それぞれが関連する数値範囲に適合した異なる複数化形式で記述する、請求項２に記載の方法。
【請求項４】
前記第１範囲は、上限及び／又は下限を含む、請求項１に記載の方法。
【請求項５】
前記第１範囲は、１又は複数の数字を表すワイルドカード文字を含む、請求項１に記載の方法。
【請求項６】
前記第１及び第２部分文字列は、前記第１及び第２テキストセグメントの前に置かれる、請求項１に記載の方法。
【請求項７】
前記文字列は、範囲検出部分文字列と割当て部分文字列を含み、前記第１トークンは、前記範囲検出部分文字列に含まれる前記第１部分文字列と前記割当て部分文字列に含まれる前記第１テキストセグメントに隣接し、前記第２トークンは、前記範囲検出部分文字列に含まれる前記第２部分文字列と前記割当て部分文字列に含まれる前記第２テキストセグメントに隣接する、請求項１に記載の方法。
【請求項８】
前記複数の文字列は、配列に組み込まれ、
前記コンピューターシステムのユーザーの言語設定又は前記コンピューターシステムが使用されている場所を指定する言語インジケーターを受け取るステップと、
前記言語インジケーターに基づいて前記配列の文字列の系列を事前選択するステップと、
を更に含む、請求項１に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  コンピューターのオペレーティングシステム、アプリケーション、サービス、又は他のプログラムは、２以上の地理的領域で用いられるために開発されることがある。そのようなプログラムは、ユーザーインターフェイス（ＵＩ）上に表示されたテキストを通じてユーザーとやりとりを行うことがある。有益なユーザー体験を提供するために、プログラムは、ユーザーの自国語でやりとりを行うように構成されることができる。いくつかの例では、ユーザーへメッセージを提示するように準備しているプログラムは、メッセージの内容を指定する引数をＵＩプロシージャへ引き渡すだろう。プロシージャは、ユーザーの言語設定（language preference）、及び／又はプログラムが使用されている地域を認識して、適切な言語による当該指定された内容へのポインターを返す。こうしてプログラムは、ユーザーの言語によるメッセージを、ディスプレイモニター上のダイアログボックスなどの適切なＵＩ要素へ導くことができる。
【０００２】
[0002]  上記のシナリオでは、ポインターは、ＵＩプロシージャがアクセスできるリソースファイル内の位置を指すことがある。リソースファイルは、メッセージが正しい文法、綴り、及び句読点の打ち方で構築されるように、ユーザーの言語における専門家からの援助を受けて用意されることがある。
【発明の概要】
【０００３】
[0003]  この開示の一実施態様は、コンピューターシステムのための現地語化リソースをエンコードした機械読み取り可能メモリを提供する。現地語化リソースは、区切られた文字列の配列を含み、各文字列は、コンピューターシステムによってコンテンツリミッターと比較される範囲を含む。範囲と関連付けられているのは、コンテンツリミッターがその範囲内にある場合にコンピューターシステムのユーザーインターフェイス上に提示されるテキストである。このフォーマットの現地語化リソースは、他の特徴の中でも、広範な言語にわたって複雑な複数化の規則を扱う能力を提供することができる。
【０００４】
[0004]  この概要は、詳細な説明において更に後述される概念からの選抜を簡略な形で導入するために提供される。この概要は、請求された主題の主要な特徴又は本質的な特徴を特定することを意図したものではなく、また、請求された主題の有効範囲を限定するのに用いられることを意図したものでもない。更にまた、請求された主題は、この開示のいずれかの部分に述べられたいくつかの、又は全ての欠点を解決する具体例には限定されない。
【図面の簡単な説明】
【０００５】
【図１】図１は、この開示の一実施態様による例示的なコンピューターシステムと現地語化リソースの態様を示す。
【図２】図２は、この開示の一実施態様による現地語化リソースの配列の例示的な文字列の態様を示す。
【図３】図３は、この開示の一実施態様による現地語化リソースの配列の例示的な文字列の態様を示す。
【図４】図４は、この開示の一実施態様による現地語化リソースの配列の例示的な文字列の態様を示す。
【図５】図５は、この開示の一実施態様による現地語化リソースの配列の例示的な文字列の態様を示す。
【図６】図６は、この開示の一実施態様による、コンピューターシステム上の現地語化リソースから文法的に正確なテキストを取得するための例示的な方法を示す。
【図７】図７は、この開示の一実施態様による、コンピューターシステムのために現地語化リソースを用意するための例示的な方法を示す。
【図８】図８は、この開示の一実施態様によるコンピューターシステムのブロック図を示す。
【発明を実施するための形態】
【０００６】
[0010]  これよりこの開示の態様が、例として、また上に列挙された例示の実施態様を参照して説明される。１又は複数の実施態様において実質的に同一であり得る構成要素、処理ステップ、及び他の要素は同等のものとして扱われ、最小限の繰り返しで記述される。しかしながら、同等のものとして扱われた要素は、幾分か異なることもあるということが留意されるだろう。更に、この開示に含まれる図面は模式的であり、一般にスケール通りには描かれていないということが留意されるだろう。むしろ、図に示された様々な描画スケール、アスペクト比、及び構成要素の数は、ある特徴又は関係性をより分かりやすくするために、意図的に歪められることがある。
【０００７】
[0011]  図１は、例示的なコンピューターシステム１０の態様を示す。コンピューターシステム１０は、あらゆる適切なタイプのコンピューターシステムを表すのであってよく、ビデオゲームシステム、デスクトップ、ラップトップ、又はタブレットコンピューターシステム、スマートフォン、メディアプレイヤー、又は他の携帯デバイス等を含むが、それらには限定されない。適切な論理及び命令記憶コンポーネントによって、コンピューターシステム１０は、コード１２を記憶し実行するように構成される。コードは、例えばコンピューターシステムの揮発性若しくは不揮発性メモリ内のソフトウェアとして実装されてよく、及び／又は、ネットワークを介してアクセスされてもよい。他の例示的な実施態様では、コードは、ファームウェアとして、又はコンピューターシステムのハードウェアの形で直接―例えば、いわゆる特定用途向け集積回路（ＡＳＩＣ）若しくはシステムオンチップの形で―インスタンス化されてよい。
【０００８】
[0012]  図１の実施態様では、コード１２は、いくつかのコードブロック１４に分割される。そのようないずれのブロックも、コンピューターシステム１０のオペレーティングシステム（ＯＳ）、ビデオゲーム若しくはメディアプレイヤーなどのアプリケーション、又はサービス若しくは他のコンピュータープログラムに対応し得る。コードブロックのいずれか、いくつか、又は全ては、ユーザーへメッセージを―例えばコンピューターシステムのＵＩを通じて―提示するコードを含んでよい。したがって、図１のコンピューターシステムは、非限定的な例としてディスプレイモニター１６や音声インターフェイス１８などの、あるＵＩコンポーネントを含む。
【０００９】
[0013]  図１に例示されたシナリオでは、実行コードブロック１４Ａは、ユーザーへメッセージを提示するための命令に出会うかもしれない。１つの例示的シナリオでは、実行コードは、リモートサーバーからいくつかの音楽トラックをダウンロードしたメディアプレイヤーのアプリケーションであってよい。コードブロック１４Ａは、この事例では４つのトラックがダウンロードされたことの、報告を課されることがある。当然のことながら、ユーザーへ提示されるどんなメッセージも、ユーザーの自国語で、ユーザーの地理的領域に適合した綴りと言葉の選択を用いて構築されることが望まれる。その目的のために、言語に依存しないコードブロック１４Ａは、ＵＩプロシージャ２０へ呼び出しを発することができる。例えば、いくつかの実施態様では、この呼び出しは、ＵＩプロシージャへ少なくとも２つの引数、即ちコンテンツインジケーター２２とコンテンツリミッター２４を渡すことができる。コンテンツインジケーターは、あるレベルの一般性をもってメッセージの内容を示す数値であってよい。上記の例では、「０５」というコンテンツインジケーターは、トラックの数を特定することなく、１又は複数の音楽トラックがダウンロードされたことを示すことができる。コンテンツリミッターは、メッセージの内容を限定する更なる特定性を提供する。いくつかの実施態様では、コンテンツリミッターは、メッセージの中に記述されたアイテムの数又は量を特定することができる。例えば、「４」というコンテンツリミッターは、４がダウンロードされた音楽トラックの数であることを特定することができる。
【００１０】
[0014]  コンテンツインジケーター２２とコンテンツリミッター２４に加えて、図１のＵＩプロシージャ２０は、言語インジケーター２６へのアクセスを有する。言語インジケーターは、コンピューターシステム１０の環境２８に格納されたグローバル変数であってよい。言語インジケーターは、コンピューターシステム１０のユーザーの言語設定、及び／又はコンピューターシステムが使用されている地域を特定する。例えば、言語インジケーター「００」は、ユーザーの言語設定が、連合王国に適合した綴りと言葉の選択を有する英語であることを示すことができる。
【００１１】
[0015]  図１の実施態様では、ＵＩプロシージャ２０は、指定されたメッセージの内容と言語に対応するテキストを、現地語化リソース（localization resource）３０から取得する。現地語化リソースは、ファイル、ビットストリーム、又はＵＩプロシージャがアクセス可能な他のオブジェクトであってよい。それは、コード１２が提示しようとするどんなメッセージに対しても、ユーザーの言語及び／又は地域設定で正しく構築されたテキストを提供することができる。
【００１２】
[0016]  図１に示されるように、現地語化リソース３０は、文字列３４の配列３２を含むことができる。本明細書において、用語「文字列」は、連続した１又は複数の文字を備えたデータタイプを意味する。「文字」は、英数字記号、句読点若しくは分音記号、又は空白などの、基本的な言語記号を表すデータタイプである。文字は、例えばアスキー又はユニコードであってよい。引き続き図１において、配列３２の文字列は、言語に基づいて、２以上の系列３６に整理されることができる。例えば、系列３６Ａは連合王国の英語で構築された文字列を含んでよく、系列３６Ｂはロシア語で構築された文字列を含んでよい。各系列の文字列は、数字でインデックスを付され、同一の数字のインデックスを持ったものは、同一の内容を異なる言語で表現する。したがって、ＵＩプロシージャ２０は、言語インジケーター２６によって指定された言語の文字列の系列を事前選択し、その事前選択された系列から、インデックスがコンテンツインジケーター２２と一致する文字列を選択することができる。以降で説明されるように、選択された文字列からの所望の内容が、この後に続く処理を通じて明らかにされることができる。
【００１３】
[0017]  ２つの系列の文字列―即ち言語―が図１に表されているが、現地語化リソース３０は、任意の数の言語に拡張可能であり、１つの言語の文字列だけが含まれている場合でさえ、依然として有用である。現地語化リソースにおいて２以上の言語がサポートされている場合、対応する文字列の系列は、同じ数の文字列―例えば、連合王国の英語の系列による５００個の文字列と、ロシア語の系列による５００個の対応する文字列―を含むことができる。このフォーマットにおいて、文字列の配列３２は、それがサポートする様々な言語にわたってギザギザ状でない（non-jagged）と言われる。
【００１４】
[0018]  図２は、現地語化リソース３０の例示の文字列３４の態様を示す。概略的に言うと、各文字列は、コンテンツリミッター２４と比較されるべき少なくとも１つの範囲３８を含む。それぞれの範囲と関連付けられているのは、コンテンツリミッター２４が範囲内にある場合にコンピューターシステムのユーザーインターフェイス上に提示されるテキストセグメント４０である。図２の例では、図示されている文字列は、３つの異なる範囲３８と、それぞれの範囲に関連付けられた対応するテキストセグメント４０を含む。ここで、文字列の異なるテキストセグメントは、アイテム「音楽トラック」を、各形式がそれに関連する数値範囲に適合した異なる複数化形式（pluralization form）で記述する。その上、各テキストセグメントにおいて用いられる動詞形は、ダウンロードされた音楽トラックの数と一致するように変形される。図２の例では、各テキストセグメント４０は、主語と述語を有する複合句である。他の例では、文字列３４のテキストセグメントは、各々１つだけの単語―例えば、複数化可能な名詞、又は主語の複数化の状態に応じて形が変化する動詞―を含んでよい。更に他の例では、文字列３４のテキストセグメントは、複数の複合句又は完全な文を含んでよい。
【００１５】
[0019]  図２の例では、様々な範囲が、区切り記号として働く角括弧を用いて、文字列３４の区切られた部分文字列として表されている。当然のことながら、任意の他の適切な区切り記号が代わりに用いられてよい。この例では、所与の範囲３８を表す区切られた部分文字列は、その範囲に関連付けられたテキストセグメント４０に隣接する。より具体的には、区切られた部分文字列は、関連するテキストセグメントの前に置かれる。他の例では、範囲は、それに関連するテキストセグメントの後に来てもよいし、又は文字列中のどこかに配置されてもよい。更に他の例では、例えば次のように、追加の区切り記号が用いられて、各範囲をそれに関連するテキストセグメントと一緒にグループ化してもよい。
[[0] music tracks][[1] music track][[2-] music tracks]
【００１６】
[0020]  図２の例では、範囲３８Ａ及び３８Ｂは単一の値の範囲であるのに対して、範囲３８Ｃはオープンエンドの範囲である。範囲３８Ｃは、下限を含むが上限を含まず、コンテンツリミッター２４が２以上に等しければその範囲に一致するだろうということを示している。他の例では、範囲は、上限を含むが下限を含まず―例えば［−５］―、コンテンツリミッターが５までの且つ５を含む任意の数であり得るということを示すのであってもよい。更に他の例では、範囲は、１又は複数の数字を表すためのワイルドカード文字を含んでよい。例えば、［１？］は１０、１１、…１９を表すのであってよく、一方、［１＊］は１で始まる任意の数を表し、［＊１］は１で終わる任意の数を表してよい。
【００１７】
[0021]  図３は、同一の又は異なる現地語化リソース３０の別の例示的な文字列３４’の態様を示す。ここでもまた、各文字列は、コンテンツリミッター２４と比較されるべき複数の範囲３８と、対応する複数のテキストセグメント４０とを含む。しかしながら、図３の実施態様では、所与の範囲を表す区切られた部分文字列は、関連するテキストセグメントを表すトークン４２に隣接する。図示された具体例では、文字列３４’は、範囲検出（rangefinder）部分文字列４４と割当て（assignment）部分文字列４６を含む。範囲検出部分文字列において、範囲３８を表すそれぞれの区切られた部分文字列は、トークン４２に隣接する。割当て部分文字列において、範囲検出部分文字列で用いられている全てのトークンが、今度はそれらが割り当てられているテキストセグメントに隣接して再度列挙される。図３では、割当て文字列のトークンは山括弧の中に登場するが、ここでも、任意の他の適切な区切り記号が代わりに用いられてよい。したがって、文字列３４及び３４’は、代替的な文字列の構築を表す。
【００１８】
[0022]  図２及び３に示されるような実施態様において、コンテンツリミッター２４に対応する実際の数が、表示の目的のために、文字列から取得される適切なテキストセグメントの先頭に付されてよい、ということが理解される。したがって、ディスプレイは、例えば、「１０個のアイテム（10 items）がダウンロードされた」又は「十個のアイテム（ten items）がダウンロードされた」等と書かれたテキストを受け取ることができる。しかしながら、他の実施態様では、コンテンツリミッターに対応する数が、取得されたテキストセグメントの中に既に存在しているように、トークンの概念は拡張されてよい。この文字列、例えば
[[0]{0} songs][[1]{0} song][[*]{0} song]
において、トークン｛０｝はコンテンツリミッターに対応する数を表す。この特徴の利点は、数をその範囲又は値に応じて異なる方法で表現することが望ましいかもしれないということである。例えば、ＵＩインターフェイスが、「０個の楽曲（0 songs）があなたのクエリに一致する」ではなく「あなたのクエリに一致する楽曲はない（no songs）」と表示することが、より自然であるかもしれない。この特徴は、上記の例示の文字列に代替的な部分文字列
[[0] no song]
を含めることによって規定されることができる。
【００１９】
[0023]  現地語化されたコンテンツ（localized content）の複数化を対象とする実施態様の場合は、いくつかの言語が非常に複雑な複数化の規則を有することがある、ということが留意されるだろう。図４及び５は、ポピュラーなアラビア語の方言による単語「エピソード」を伴った文法的に正しい文を構築するのに用いられることのできる、文字列表現を示す。これらの例では、各数値範囲に関連するテキストセグメントは、単一の単語「エピソード」を、その範囲に対する文法的に正しい形式で記述する。図４は、図２で導入されたより冗長な構造を使用するのに対して、図５は、図３におけるような、範囲検出及び割当て部分文字列を用いて同じコンテンツを提示する。複雑な複数化の規則は、ロシア語など他の言語でも用いられる。
【００２０】
[0024]  本明細書で開示されるフォーマットの現地語化リソースは、０、１、及び＞１に等しいコンテンツリミッターに対して異なる現地語化テキスト文字列を含むにすぎない方策よりも、著しい利点を提供することができる。例えば、そのようなアプローチは、アラビア語又はロシア語で文法的に正しい複数化を提供するにはネイティブ的に制限がありすぎるかもしれない。更に、たとえそれらを利用する言語について追加的な範囲を含めるようにアプローチを拡張したとしても、その結果得られる系列は、英語又はロマンス語の系列も含む配列に容易には組み込むことができない。そのような配列は、１つの言語系列に対して別の系列に対するよりも多くの文字列のエントリを有して、それが表す言語にわたってギザギザ状（jagged）となることであろう。
【００２１】
[0025]  数多くの他の実施例がこの開示の趣旨及び範囲内に依然としてあるため、前述の説明のいかなる態様も、限定的な意味に理解されるべきではない。概して、現地語化リソース３０は、区切られた文字列の事実上任意の配列を含んでよく、文字列のそれぞれは、コンピューターシステムによってコンテンツリミッターと比較される範囲と、コンテンツリミッターがその範囲内にある場合にコンピューターシステムのユーザーインターフェイス上に提示される、前記範囲に関連付けられたテキストとを含む。図２及び３に示された文字列の構造に対する代替として、配列は、いわゆる「正規表現」に結合された範囲とテキストの要素を含んでよい。例えば、このトークン化された文字列
[[1]{0} song][[*2]{0} songz][[*3]{0} songz][[*4]{0} songz][[*]{0} songs]
に対する代替として、以下の正規表現が配列に格納されてよい。
[[^1$]{0} song][[^(2-4)]{0} songz][[/d]$]{0} songs]
【００２２】
[0026]  更に、この開示のいくつかの態様は、現地語化されたコンテンツの複数化を対象としているけれども、本明細書に記載されたアプローチは、時刻の表現などの、ソフトウェアの現地語化における他の問題に対しても適用可能である。例えば、ロシア語では、「часов」という用語は、英語のｏ’ｃｌｏｃｋのように使われるが、例外がある。もし時間が数字１で終わるなら、代わりに「час」が用いられ、またもし時間が２、３、又は４で終わるなら、「часа」が用いられる。
【００２３】
[0027]  本明細書で説明される構成は、現地語化リソース３０を伴う様々な方法を可能にする。したがって、いくつかのそのような方法が、引き続き上記の構成を参照して、例として、これより説明される。しかしながら、本明細書で説明される方法、及びこの開示の範囲内にある他の方法は、他の構成によっても可能とされてよい、ということが理解されるだろう。更に、本明細書で説明及び／又は例示される処理ステップのいくつかは、いくつかの実施態様では、この開示の範囲から逸脱することなく省略されてよい。同様に、処理ステップの指定されたシーケンスは、意図された結果を達成するために必ずしも必要とされなくてもよいが、例示及び説明の容易さのために提供される。例示されたアクション、機能、又は動作のうちの１又は複数は、用いられる特定の方策に応じて、繰り返して実施されてもよい。
【００２４】
[0028]  図６は、コンピューターシステム上の現地語化リソースから文法的に正確なテキストを取得するための例示的な方法４８を示す。方法４８の５０において、取得されるべきテキストの内容を示すコンテンツインジケーターが、コンピューターシステムにおいて受け取られる。一実施態様では、コンテンツインジケーターは、コンピューターシステムの実行コードブロックからコンピューターシステムのＵＩプロシージャへ渡されてよい。５２において、指定された内容に限定を課すコンテンツリミッターが受け取られる。ここでもまた、コンテンツリミッターは、コンピューターシステムの実行コードブロックからＵＩプロシージャへ渡されてよい。５４において、言語インジケーターがＵＩプロシージャにおいて受け取られる。言語インジケーターは、コンピューターシステムのユーザーの言語設定、又はコンピューターシステムが使用されている場所を指定する。一実施態様では、言語インジケーターは、グローバル環境変数、又はＵＩプロシージャと共有される変数であってよい。
【００２５】
[0029]  方法４８の５６において、ユーザーの言語で構築された文字列の系列が、言語インジケーター２６に基づいて現地語化リソース３０から事前選択される。５８において、コンテンツインジケーター２２に対応する文字列３４が、事前選択された系列から選択される。６０において、選択された文字列が、コンテンツリミッター２４を括弧の中に含む範囲を検出するために解析される。
【００２６】
[0030]  文字列は、いくつかの実施態様では、左から右へ解析されてよい。したがって、各文字列に含まれる様々な範囲３８は、増大していく一般性（increasing generality）の順に、左から右へ整列されてよい。このようにして、コンテンツリミッターは、もし文字列中に存在するのであれば、より包括的な（例えば、オープンエンド又はワイルドカード）範囲に優先して、最も狭い適合範囲に一致するだろう。６２において、検出された範囲に関連するテキストセグメント４０が取得される。一実施態様では、実行コードブロックによって呼び出されたＵＩプロシージャは、テキストセグメントへのポインターを返すことができる。６４において、テキストセグメントがコンピューターシステムのＵＩ上に提示される。このアクションは、テキストセグメントを、コンピューターシステムのディスプレイモニターのダイアログボックスのようなＵＩ要素上に表示することを含んでよい。他の実施態様では、テキストセグメントは、コンピューターシステムの音声合成エンジンへ出力され、あるいは任意の他の適切な方法で提示されてよい。
【００２７】
[0031]  図７は、コンピューターシステムのために現地語化リソースを用意するための例示的な方法６６を示す。方法の６８において、複数の範囲３８が、区切られた部分文字列として文字列３４に埋め込まれて格納される。範囲は、上述されたように数であってよい。７０において、対応する複数のテキストセグメント４０も、格納可能に文字列に埋め込まれる。各テキストセグメントは、コンピューターシステムにおいて受け取られたコンテンツリミッター２４がそのテキストセグメントに関連する範囲内にある場合にコンピューターシステムのユーザーインターフェイス上に提示されることになるものである。
【００２８】
[0032]  一実施態様では、コンテンツリミッターは、文字列の複数のテキストセグメント中に共通して記述されたアイテムの数又は量を表すことができる。一実施態様では、区切られた文字列を格納することは、各形式がそれに関連する数値範囲に適合した異なる複数化形式でアイテムを記述する、異なるテキストセグメントを埋め込むことを含んでよい。７２において、文字列は、現地語化リソース３０の検索可能な配列３２に組み立てられる。
【００２９】
[0033]  前述の説明から明らかなように、本明細書で説明される方法及び処理は、１又は複数のコンピューティングデバイスのコンピューティングシステムに結び付けることができる。そのような方法及び処理は、コンピューターアプリケーションプログラム若しくはサービス、アプリケーションプログラミングインターフェイス（ＡＰＩ）、ライブラリ、及び／又は他のコンピュータープログラム製品として実装されることができる。
【００３０】
[0034]  図８は、本明細書で説明される方法及び処理をサポートするように構成されたコンピューターシステム１０の更なる態様を示す高水準の図である。本明細書で上述されたように、コンピューターシステムは、論理マシン７４及び命令記憶マシン７６を含む。コンピューターシステム１０は、オプションとして、表示サブシステム７８、入力サブシステム８０、通信サブシステム８２、及び／又は図８には示されていない他のコンポーネントを含んでよい。
【００３１】
[0035]  論理マシン７４は、命令を実行するように構成された１又は複数の物理デバイスを含む。例えば、論理マシンは、１又は複数のアプリケーション、サービス、プログラム、ルーチン、ライブラリ、オブジェクト、コンポーネント、データ構造、又は他の論理構造体のうちの一部である命令を実行するように構成されてよい。そのような命令は、タスクを実施し、データ型を実装し、１又は複数のコンポーネントの状態を変換し、技術的な効果を達成し、又は他の方法で所望の結果に到達するように実装されることができる。
【００３２】
[0036]  論理マシン７４は、ソフトウェア命令を実行するように構成された１又は複数のプロセッサーを含んでよい。付加的に、又は代替として、論理マシンは、ハードウェア若しくはファームウェア命令を実行するように構成された１又は複数のハードウェア又はファームウェア論理マシンを含んでもよい。論理マシンのプロセッサーは、シングルコア又はマルチコアであってよく、その上で実行される命令は、順次処理、並列処理、及び／又は分散処理向けに構成されてよい。論理マシンの個々のコンポーネントは、オプションとして、リモートに配置され及び／又は連携処理向けに構成され得る２以上の別個のデバイスにわたって分散されてよい。論理マシンの態様は、クラウドコンピューティング配置に構成されたリモートでアクセス可能なネットワーク接続のコンピューティングデバイスによって、仮想化され実行されることができる。
【００３３】
[0037]  命令記憶マシン７６は、本明細書で説明される方法及び処理を実現するための、論理マシン７４によって実行可能な命令を保持するように構成された１又は複数の物理デバイスを含む。そのような方法及び処理が実現されると、命令記憶マシンの状態は、―例えば異なるデータを保持するように―変換されることができる。命令記憶マシンは、リムーバブル及び／又は内蔵デバイスを含んでよく、なかでも、光メモリ（例えば、ＣＤ、ＤＶＤ、ＨＤ−ＤＶＤ、Ｂｌｕ−Ｒａｙディスク等）、半導体メモリ（例えば、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等）、及び／又は磁気メモリ（例えば、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、ＭＲＡＭ等）を含んでよい。命令記憶マシンは、揮発性、不揮発性、動的、静的、読み出し／書き込み、読み出し専用、ランダムアクセス、シーケンシャルアクセス、位置アドレス指定可能、ファイルアドレス指定可能、及び／又はコンテンツアドレス指定可能なデバイスを含んでよい。
【００３４】
[0038]  命令記憶マシン７６は、１又は複数の物理デバイスを含むということが認識されるだろう。しかしながら、本明細書で説明される命令の態様は、代替的に、記憶媒体を介して記憶されるのではない通信媒体（例えば、電磁信号、光信号等）によって伝搬されてもよい。
【００３５】
[0039]  論理マシン７４と命令記憶マシン７６の態様は、１又は複数のハードウェア論理コンポーネントに一緒に統合されてもよい。そのようなハードウェア論理コンポーネントは、例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラム及びアプリケーション特定集積回路（ＰＡＳＩＣ／ＡＳＩＣ）、プログラム及びアプリケーション特定標準製品（ＰＳＳＰ／ＡＳＳＰ）、システムオンチップ（ＳＯＣ）、及び複合プログラマブル論理デバイス（ＣＰＬＤ）を含んでよい。
【００３６】
[0040]  「プログラム」又は「エンジン」という用語は、特定の機能を実施するように具現化されたコンピューターシステム１０の態様を記載するのに用いられることができる。いくつかのケースでは、プログラム又はエンジンは、命令記憶マシン７６により保持された命令を実行する論理マシン７４を介してインスタンス化されることができる。同一のアプリケーション、サービス、コードブロック、オブジェクト、ライブラリ、ルーチン、ＡＰＩ、関数等から、異なるプログラム又はエンジンがインスタンス化されてよいということが理解されるだろう。同様に、異なるアプリケーション、サービス、コードブロック、オブジェクト、ルーチン、ＡＰＩ、関数等によって、同一のプログラム及び／又はエンジンがインスタンス化されてもよい。「プログラム」又は「エンジン」という用語は、実行可能ファイル、データファイル、ライブラリ、ドライバー、スクリプト、データベースレコード等の個々又は集団を包含することができる。
【００３７】
[0041]  本明細書で用いられる際、「サービス」は、複数のユーザーセッションにわたって実行可能なアプリケーションプログラムであるということが認識されるだろう。サービスは、１又は複数のシステムコンポーネント、プログラム、及び／又は他のサービスに利用可能であってよい。いくつかの実施例では、サービスは、１又は複数のサーバーコンピューティングデバイス上で動作することができる。
【００３８】
[0042]  含まれる場合、表示サブシステム７８は、命令記憶マシン７６によって保持されるデータの視覚的表現を提示するのに用いられることができる。この視覚的表現は、グラフィカルユーザーインターフェイス（ＧＵＩ）の形をとることができる。本明細書で説明される方法及び処理が記憶マシンによって保持されたデータを変化させ、その結果記憶マシンの状態を変換する時、表示サブシステムの状態も同様に、元となるデータにおける変化を視覚的に表現するように変換されることができる。表示サブシステムは、事実上任意の種類の技術を利用する１又は複数のディスプレイデバイスを含んでよい。そのようなディスプレイデバイスは、共通の筐体内で論理マシン７４及び／又は命令記憶マシン７６と一体化されてよく、あるいは、そのようなディスプレイデバイスは、周辺機器のディスプレイデバイスであってもよい。
【００３９】
[0043]  含まれる場合、入力サブシステム８０は、キーボード、マウス、タッチスクリーン、若しくはゲームコントローラーなどの１又は複数のユーザー入力デバイスを含み、又はそれらとインターフェイスすることができる。いくつかの実施態様では、入力サブシステムは、選択されたナチュラルユーザー入力（ＮＵＩ）コンポーネントを含み、又はそれとインターフェイスすることができる。そのようなコンポーネントは、一体型又は周辺機器型であってよく、入力動作の伝達及び／又は処理は、オンボード又はオフボードで扱われてよい。例示のＮＵＩコンポーネントは、音声認識のためのマイクロフォン、マシンビジョン及び／又はジェスチャ認識のための赤外カメラ、カラーカメラ、ステレオカメラ、及び／又は深度カメラ、モーション検出及び／又は意図認識のためのヘッドトラッカー、アイトラッカー、加速度計、及び／又はジャイロスコープ、並びに、脳の活動を調べるための電界検知コンポーネントを含んでよい。
【００４０】
[0044]  含まれる場合、通信サブシステム８２は、コンピューターシステム１０を１又は複数の他のコンピューティングデバイスと通信可能に結合するように構成されることができる。通信サブシステムは、１又は複数の異なる通信プロトコルと互換性のある有線及び／又は無線通信デバイスを含むことができる。非限定的な例として、通信サブシステムは、無線の電話ネットワーク、又は、有線若しくは無線のローカル若しくはワイドエリアネットワークを介した通信のために構成されることができる。いくつかの実施態様では、通信サブシステムは、コンピューターシステム１０がインターネットなどのネットワークを介してメッセージを他のデバイスへ送る、及び／又は他のデバイスから受け取ることを可能にすることができる。
【００４１】
[0045]  本明細書で説明された構成及び／又は手法は本質的に例示的なものであり、数多くのバリエーションが可能であるためこれらの具体的な実施態様又は例は限定的な意味に解されてはならない、ということが理解されるだろう。本明細書で説明された具体的なルーチン又は方法は、多くの処理戦略のうちの１又は複数を代表することができる。それ故に、例示及び／又は説明された様々な動作は、例示及び／又は説明された順序で、他の順序で、並列で、又は省略されて、実施されることができる。同様に、上述された処理の順序は変更されることができる。
【００４２】
[0046]  本開示の主題は、本明細書で開示された様々な処理、システム及び構成、並びに、他の特徴、機能、動作、及び／又は特性のみならず、それらのいずれか及び全ての均等物の、あらゆる新規且つ非自明なコンビネーション及びサブコンビネーションを含んでいる。
【図１】
0006420820.tif 000002
【図２】
0006420820.tif 000003
【図３】
0006420820.tif 000004
【図４】
0006420820.tif 000005
【図５】
0006420820.tif 000006
【図６】
0006420820.tif 000007
【図７】
0006420820.tif 000008
【図８】
0006420820.tif 000009