(57)【特許請求の範囲】
【請求項１】
複数のリソースをデバイス上で管理するための方法であって、
前記複数のリソースを記憶することと、なお、前記複数のリソースは、データ言語の共通変数を含むパスによりそれぞれ特定され、前記複数のリソースは、テキスト、画像、ページ・レイアウト、プログラムの断片、デバイス・コンポーネント、及び機能へのアクセス、を含み、前記共通変数は、デフォルト値が定められている、
前記複数のリソースのうちの１つの共通変数が変更した場合、前記複数のリソースのうちの他の前記共通変数も変更することと、
変更された共通変数により特定されたリソースが前記記憶された前記複数のリソースにない場合、変更前の共通変数またはデフォルト値の共通変数のうちの１つに戻ることと、
を具備することを特徴とする、方法。
【請求項２】
複数のリソースにアクセスするためのデバイスであって、
前記複数のリソースを記憶するメモリと、なお、前記複数のリソースは、データ言語の共通変数を含むパスによりそれぞれ特定され、前記複数のリソースは、テキスト、画像、ページ・レイアウト、プログラムの断片、デバイス・コンポーネント、及び機能へのアクセス、を含み、前記共通変数は、デフォルト値が定められている、
前記複数のリソースのうちの１つの共通変数が変更した場合、前記複数のリソースのうちの他の前記共通変数も変更し、前記複数のリソースにアクセスするためのプロセッサと、
を具備し、
前記プロセッサは、変更された共通変数により特定されたリソースが前記記憶された前記複数のリソースにない場合、変更前の共通変数またはデフォルト値の共通変数のうちの１つに戻ることをさらに備える、
デバイス。
【請求項３】
複数のリソースを管理するためのコンピュータ実行可能な命令を含むコンピュータ読み取り可能な媒体であって、前記命令が実行される場合に、前記コンピュータは、
前記複数のリソースを記憶することと、なお、前記複数のリソースは、データ言語の共通変数を含むパスによりそれぞれ特定され、前記複数のリソースは、テキスト、画像、ページ・レイアウト、プログラムの断片、デバイス・コンポーネント、及び機能へのアクセス、を含み、前記共通変数は、デフォルト値が定められている、
前記複数のリソースのうちの１つの共通変数が変更した場合、前記複数のリソースのうちの他の前記共通変数も変更することと、
変更された共通変数により特定されたリソースが前記記憶された前記複数のリソースにない場合、変更前の共通変数またはデフォルト値の共通変数のうちの１つに戻ることと、
を備えることを特徴とする、コンピュータ読み取り可能な媒体。
【請求項４】
複数のリソースにアクセスするためのデバイスであって、
前記複数のリソースを記憶するための手段となお、前記複数のリソースは、データ言語の共通変数を含むパスによりそれぞれ特定され、前記複数のリソースは、テキスト、画像、ページ・レイアウト、プログラムの断片、デバイス・コンポーネント、及び機能へのアクセス、を含み、前記共通変数は、デフォルト値が定められている、
前記複数のリソースのうちの１つの共通変数が変更した場合、前記複数のリソースのうちの他の前記共通変数も変更し、前記複数のリソースにアクセスするための手段と、
変更された共通変数により特定されたリソースが前記記憶された前記複数のリソースにない場合、変更前の共通変数またはデフォルト値の共通変数のうちの１つに戻るための手段と、
を具備することを特徴とするデバイス。
【発明の詳細な説明】
【関連文献】
【０００１】
本出願は、２００５年５月３１日出願に出願された米国特許仮出願番号第６０／６８６，１８０号に優先権を主張し、その全体が、この引用によって本明細書中にこのようにして取り込まれている。
【技術分野】
【０００２】
本発明は、一般にソフトウェア・アプリケーションの変数処理に係る。より詳しくは、本発明は、ファイル構造を生成すること及び共通変数を用いてリソースを処理することに関する。
【背景技術】
【０００３】
データ言語は、プログラムするためにより一層浸透した方法になりつつある。データ言語は、ＸＭＬに基づくもののようなマークアップ言語を含み、ＨＴＭＬ、ＴＲＩＧＭＬ（登録商標）（ＱＵＡＬＣＯＭ（クァルコム）株式会社により所有される）を含む。データを御する言語は、ウェブ・ベースのアプリケーションをプログラムする際に広く使用されているが、これに限定されない。ＸＬＭベースの言語の例は、請求書作成アプリケーション及びトランザクション処理アプリケーションも同様に含む。
【０００４】
データ言語を使用するときに幾つかの事例において困難が生じる。例えば、ユーザ・インターフェース（ＵＩ：user interface）を開発する際に、デバイス上でランしているアプリケーションによって望まれる言語に応じてアプリケーションのために複数の言語への利用可能性を有することが望ましい。例えば、フランスで使用される無線デバイスは、用語“ボンジュール”へのアクセスを望むことができ、一方で、イギリスで使用される無線デバイスは、同じ目的のために用語“ハロー”をアクセスするように望むことができる。
【０００５】
しかしながら、テキストに加えて、アプリケーションが文化、言語、又は別の変化に基づいて変更することを望む他のリソース型があり得る。例えば、アプリケーションは、言語がフランス語として選択される場合に、背景としてエッフェル塔を表示するように望むことができ、しかも、英語に対してバッキンガム宮殿を表示するように望むことができる。同様に、アプリケーション開発者が信じるそれらの言語／文化がより控え目であるものに対するより控え目である画像に対して、アプリケーション開発者が信じるそれらの言語／文化がより適切であるとして、よりきわどい絵が望まれることがある。
【０００６】
この問題に対処するために使用する現在の方法は、言語パックの使用である。例えば、マイクロソフト・ワードは、言語パックをインストールすることができる。例えば、インストールされたフランス語言語パックは、“edit（編集）”に対するメニューのオプションを、“editer”のような対応するフランス語の単語に置き換えるはずである。複数の言語パックがインストールされることができるが、言語パックは、リソースに左右される言語の数が多くなるにつれて管理することが困難になってきている。さらに、別の変形に基づいてリソースを管理するための解がない。
【０００７】
したがって、この分野において必要とされているものは、複数の型のリソースのための言語変形を管理することを可能にする方法、装置及びシステムである。さらに、必要とされているものは、複数のリソース型に対する変形を提供するための、そして複数の変形を使用してリソースを管理するための方法、装置及びシステムである。
【発明の概要】
【０００８】
本発明に整合するシステム及び方法は、複数のリソース型のための変形を提供し、そして共通変数と体系化されたファイル構造の使用によってリソースを効率的に管理するシステム、方法及び装置を作り出すことによって現在のシステムの欠点を克服する。
【０００９】
１つの実施形態では、データ言語中の変数を使用して複数のリソースを管理するための構造を生成するための方法は、変数によって識別される複数のリソース参照値を受け取ること、及び該変数及び該複数のリソース参照値を使用して構造を構築することを具備し、ここにおいて、該複数のリソース参照値は、該変数の値を変更することによってアクセスされることができる。
【００１０】
別の１つの実施形態では、共通変数によって識別される類似のリソース参照値をアクセスするためのファイル構造を生成するための方法は、該ファイル構造の内部の同じ相対的位置の該類似のリソース参照値のそれぞれに関係付けられる値の場所を決める該共通変数型を使用して該ファイル構造を分割することを具備する。
【００１１】
さらに別の１つの実施形態では、共通変数によって識別される類似のリソース参照値をアクセスするためのファイル構造を記憶するためのデバイスは、メモリ、該メモリ中に記憶された該ファイル構造、ここにおいて、該ファイル構造は共通変数を介して体系化され、そして該類似のリソース参照値は異なる共通変数値の中で同じ位置として該ファイル構造の内部に位置を決められる、及び該共通変数値を使用して該リソース参照値を検索するためのプロセッサ、を具備する。
【００１２】
さらに別の１つの実施形態では、コンピュータ実行可能な命令を含むコンピュータ読み取り可能な媒体であって、該命令は、実行されるときに、共通変数を使用してファイル構造を分割すること、及び該共通変数によって参照される該ファイル構造の内部の同じ相対的位置の類似のリソース参照値のそれぞれに関係付けられる値の場所を決める、ステップを実行することにより、共通変数によって識別される類似のリソース参照値をアクセスするためのファイル構造を生成する。
【００１３】
さらに別の１つの実施形態では、データ言語中のリソースを管理する方法は、パラメータを使用してリソースに対する要請を受け取ること、該パラメータを変更すること、及び該パラメータを使用して変更された関連するリソースに対する要請を受け取ることを具備する。
【００１４】
さらに別の１つの実施形態では、共通変数を使用して体系化されたファイル構造内に含まれるリソース値に対する要請を受け取るための方法は、該共通変数の値を記憶すること、リソースに対する該要請を受け取ること、ここにおいて、該要請は、該共通変数及びリソース参照値を含む、該共通変数の該値を検索すること、及び該検索した共通値及び該リソース参照値を使用して該共通値及び該リソース参照値に関係付けられる該ファイル構造中の位置を照合することによって該リソース値を検索すること、を具備する。この方法は、該共通変数の値を変更すること、該共通変数及び該リソース参照値を使用して体系化された該ファイル構造内に含まれる第２のリソース値に対する要請を受け取ること、該変更された共通変数を検索すること、該変更された共通変数及び該リソース参照値を使用して第２のリソース値を検索することをさらに含む。
【００１５】
本発明のその他の目的、利点及び特徴は、図面の簡単な説明、本発明の詳細な説明及び特許請求の範囲の記載に鑑みて本明細書を概観した後で明らかになるであろう。
【図面の簡単な説明】
【００１６】
【図１】図１は、その環境においてデバイスが本発明の１実施形態で動作することができる通信環境の機能図である。
【図２】図２は、本発明の１実施形態における１つのサンプルの移動デバイスの構成要素を一般的に説明する機能ブロック図である。
【図３】図３は、本発明の１実施形態における１つのサンプルの計算デバイスの構成要素を一般的に説明する機能ブロック図である。
【図４】図４は、本発明の１実施形態におけるコンピュータ・プラットフォームの１つのアプリケーション・アーキテクチャを説明するブロック図である。
【図５】図５は、本発明の１実施形態におけるユーザ・インターフェース・コンポーネントを更新するシステム及びトリグプレーヤ、アクタ及びトリグを図示するアーキテクチャを説明するブロック図である。
【図６】図６は、本発明の１実施形態において言語の共通変数によって体系化される複数の類似のリソース参照値を管理することに関係するファイル構造を説明するブロック図である。
【図７】図７は、本発明の１実施形態において言語の共通変数によって体系化される複数の類似のリソース参照値を管理することに関係するより複雑なファイル構造を図示する。
【図８】図８は、本発明の１実施形態において言語の共通変数によって体系化される複数の類似のリソース参照値及び異なる参照形を管理することに関係する別の１つのより複雑なファイル構造を図示する。
【発明を実施するための形態】
【００１７】
同じ参照符号は、全体を通して同じ要素を表す図面を参照する。
【００１８】
参照は、添付した図面に図示されるように本発明の現在の具体例の実施形態及び好ましい実施形態に対して詳細にここに行われ、図面では、同じ参照符号は、複数の図面を通して同じ部分又は対応する部分を示す。本発明の本質、目的、及び利点は、図面に関連して以下に述べる詳細な説明を考慮した後で、当業者にとってさらに明確になるであろう。
【００１９】
用語の使用に関して、本明細書では、用語“無線デバイス”、“無線電話機”、及び“移動デバイス”は、互換的に使用される。本明細書中に使用されるように用語“アプリケーション”は、実行可能なそして実行できないソフトウェア・ファイル、生データ、データの集合、パッチ、コンテント、ユーザ・インターフェース及びユーザ・インターフェース・コンポーネント、及び他のコード・セグメントを包含するように意図される。さらに、類似の参照符号は、複数の図面を通して類似の要素を呼び、そして冠詞“ａ”と“ｔｈｅ”は、明細書中に指定されない限り、複数の表示を含む。
【００２０】
以下の説明は、ＴｒｉｇＭＬデータ言語を使用するユーザ・インターフェース・リソース管理方法、装置及びシステムに関する。ＴｒｉｇＭＬは、ユーザ・インターフェースを開発する際に有用なデータ言語である。ＴｒｉｇＭＬは、ＱＵＡＬＣＯＭ（クァルコム）社により所有される製品である。ＸＭＬの下で定義されるデータ言語のように、ＴｒｉｇＭＬコードは、タグの使用を含む。上記の説明はＵＩ、ＴｒｉｇＭＬ及び管理言語に関してであるが、ＵＩ以外の別のアプリケーションに適用可能であること、別のＸＭＬベースの言語を含むＴｒｉｇＭＬ以外のデータ言語で実行され得ること、そして言語以外の変数を使用する別のリソース型を管理するために使用されることができることは、当業者によって理解される。
【００２１】
本発明の複数の実施形態は、リソースを管理すること、例えば、管理言語によりテキスト及び画像を管理すること、を含む。リソースは、テキスト、画像、ページ・レイアウト、プログラムの断片、デバイス・コンポーネント及び機能へのアクセスを含む任意のリソースであり得るが、これらに限定されない。
【００２２】
図１は、その環境においてデバイスが本発明の１実施形態で動作することができる通信環境１００の機能図である。この例では、通信環境１００は、無線ネットワーク１２２を含む。無線ネットワーク１２２は、無線サービス・プロバイダによって操業されている通信ネットワークであり得て、移動デバイスへのデータ接続性又は電気通信接続性を提供する。さらに、無線ネットワーク１２２は、有線ネットワーク、インターネット、ワイド・エリア・ネットワーク、公衆交換電話ネットワーク（ＰＳＴＮ：Public Switch Telephone Network）、及び他の公開ネットワーク及び／又は非公開ネットワークを同様に含むことができ、その結果、デバイスは、これらのネットワークからネットワークへと接続されている他のデバイスを使用して直接的に又は間接的に通信することができる。
【００２３】
１つの例では、無線ネットワーク１２２は、セルラ電話ネットワークを含むことができる。例えば、セルラ電話機１１２、ラップトップ・コンピュータ１１６、ＰＤＡ１１８、及び移動メッセージ通信デバイス１２０の様な、複数の移動デバイスが、無線ネットワーク１２２と通信している。これらのデバイスは、無線ネットワーク１２２を経由して通信することができる多くの型のデバイスの例示として示されているだけである。
【００２４】
図１に図示されているものは、アプリケーション・サーバ１２４及びユーザ・インターフェース・サーバ１２６である。ユーザ・インターフェース・サーバ１２６は、ユーザ・インターフェース・コンポーネント１３０（下記にさらに詳細に説明される）を取り扱う計算デバイスである。これらのユーザ・インターフェース・コンポーネント１３０は、無線ネットワーク１２２に接続された他のデバイスにダウンロードされることができる。ユーザ・インターフェース・コンポーネントは、ユーザ・インターフェース（例えば、機能コール、メニュー、コンテント・コールにためのコード、スキン、等）を与える（render）ためのコード及び／又はデータを含む。コンテント・サーバを含む複数の他のサーバが、ネットワークに接続するために使用されることができ、情報を配信することができることに、注意する。利用可能にされ得る情報の型は、制限がなく、そして非常に多くの異なる例が、当業者に明らかであろう。ユーザ・インターフェース・サーバ１２６は、サーバ・ソフトウェアを含み、それは無線ネットワーク１２２を経由して要請しているデバイスにユーザ・インターフェース・コンポーネント１３０を提供するように構成される。
【００２５】
アプリケーション・サーバ１２４は、無線ネットワーク１２２に接続された計算デバイス又は計算システムであり、それはソフトウェア・アプリケーション１２８が移動デバイスによってダウンロードされることを可能にする。一般的に述べると、アプリケーション１２８は、無線ネットワーク１２２に接続されたデバイス、例えば、セルラ電話機１１２、上で実行するためにそれらのデバイスによってダウンロードされることができる。この特定の実施において、アプリケーション・ダウンロード・サーバ１２４によって取り扱われるアプリケーション１２８のうちの少なくとも１つは、少なくとも１つの移動デバイス上での実行のために構成されたコンテント・ベースのアプリケーションである。コンテント・ベースのアプリケーション（クライアント）は、移動デバイスによる表示のためにユーザ・インターフェースを介してコンテント・サーバ（図示されず）からコンテントを検索するように構成される。
【００２６】
図２は、本発明の１実施形態において、１つのサンプルの移動デバイス２０１の構成要素を一般的に説明する機能ブロック図である。移動デバイス２０１は、計算機能を有する任意のデバイスであることができ、例えば、セルラ電話機、個人ディジタル補助装置、手持ち“パームトップ”デバイス、ラップトップ・コンピュータ、携帯型音楽プレーヤ、全地球位置決定衛星（ＧＰＳ：global positioning satellite）デバイス、又はその他である。
【００２７】
移動デバイス２０１は、コンピュータ・プラットフォーム２５０を有し、それはソフトウェア・アプリケーションを受信しそして実行することができ、データを表示することができる。コンピュータ・プラットフォーム２５０は、プロセッサ２５２を含み、例えば、用途特定集積回路“ＡＳＩＣ（application specific integrated circuit）”、ディジタル信号プロセッサ（“ＤＳＰ（digital signal processor）”）、マイクロプロセッサ、マイクロコントローラ、論理回路、ステート・マシーン、又は他のデータ処理デバイスである。プロセッサ２５２は、アプリケーション・プログラミング・インターフェース（ “ＡＰＩ（application programming interface）”）層２５４を実行し、それは移動デバイスのメモリ２５６中の任意の常駐プログラムをインターフェースする。メモリ２５６は、ランダム・アクセス・メモリ又は読み取り専用メモリ（ＲＡＭ又はＲＯＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、又はコンピュータ・プラットフォームに一般的ないずれかのメモリを含むことができる。コンピュータ・プラットフォーム２５０は、しかもローカル記憶装置２５８を含み、それはメモリ２５６中でアクティブに使用されないソフトウェア・アプリケーション、ファイル、又はデータ、例えば、ユーザ・インターフェース・サーバ１２６（図１）からダウンロードされたソフトウェア・アプリケーション又はユーザ・インターフェース・コンポーネント、を保持することができる。ローカル記憶装置２５８は、一般的に１又はそれより多くのフラッシュ・メモリ・セルを備えるが、本分野において公知のいずれかの２次記憶デバイス又は３次記憶デバイスであり得て、例えば、磁気媒体、ＥＰＲＯＭ、ＥＥＰＲＯＭ、光学的媒体、テープ、若しくはソフト・ディスク又はハード・ディスクであり得る。
【００２８】
コンピュータ・プラットフォーム２５０は、しかもディスプレイ２６０も含み、それはユーザ・インターフェース（図示されず）を使用してデータを表示するためにソフトウェア・アプリケーションによって使用されることができる。
【００２９】
図２に示される構成要素は、多くの型の移動デバイスで一般的であるが、他の構成要素が移動デバイス２０１に追加されることができ、そしてあるケースでは、図２に示されたある構成要素は、移動デバイス２０１から省略されることがある。
【００３０】
図３は、本発明の１実施形態において、１つのサンプルの計算デバイス３０１の核となる構成要素を一般的に説明する機能ブロック図である。計算デバイス３０１は、任意の固定計算デバイス、例えば、デスクトップ・コンピュータ又はサーバであり得る。
【００３１】
この例では、計算デバイス３０１は、プロセッサ・ユニット３０４、メモリ３０６、記憶媒体３１３、及びオーディオ・ユニット３３１を含む。プロセッサ・ユニット３０４は、好都合なことにマイクロプロセッサ又はディジタル信号プロセッサのような特殊用途プロセッサを含むが、代わりにいずれかの従来形式のプロセッサ、コントローラ、マイクロコントローラ、又はステート・マシーンであり得る。プロセッサ・ユニット３０４は、メモリ３０６に接続され、それはプロセッサ・ユニット３０４によって実行されるソフトウェア命令を保有しているＲＡＭメモリとして都合の良いことに実装される。代案の実施形態では、メモリ３０６は、ファームウェア又はフラッシュ・メモリにより構成されることができる。この実施形態では、メモリ３０６中に記憶されたソフトウェア命令は、オペレーティング・システム３１０及び１又はそれより多くの別のアプリケーション３１２、例えば、ユーザ・インターフェースを使用するアプリケーション（図示されず）、を含む。
【００３２】
移動デバイス３０１は、しかも通信モジュール３２１を含み、それは計算デバイス３０１と１又はそれより多くの別の計算デバイス、例えば、移動デバイスとの間の双方向通信を可能にする。通信モジュール３２１は、ＲＦ無線通信又は他の無線通信を可能にする構成要素、例えば、セルラ電話ネットワーク、ブルートース接続、無線ローカル・エリア・ネットワーク、又はおそらく無線ワイド・エリア・ネットワーク、を含むことができる。あるいは、通信モジュール３２１は、地上回線すなわち配線接続されたネットワーク通信、例えば、イサーネット（登録商標）接続、ＲＪ−１１接続、ユニバーサル・シリアル・バス接続、ＩＥＥＥ１３９４（ファイアワイア）接続、又はその他、を可能にする構成要素を含むことができる。これらは非網羅的なリストとして意図されており、そして多くの他の代案が可能である。オーディオ・ユニット３３１は、移動デバイス３０１の構成要素であり、アナログ・フォーマットとディジタル・フォーマットとの間で信号を変換するために構成される。オーディオ・ユニット３３１は、移動デバイス３０１によって使用され、スピーカ３３２を使用して音を出力しそしてマイクロフォン３３３からの入力信号を受け取る。
【００３３】
図３は、多くの従来型の計算デバイスにおいて一般的に見られるある種の構成要素だけを図示する。非常に多くの他の構成要素が、同様に特定の装置においてごく普通に見られ、そしてある種のケースでは、図３に示されたある構成要素が省略されることができる。しかしながら、図３に示された計算デバイス３０１は、今日一般的に見られる計算デバイスの典型である。
【００３４】
図４は、本発明の１実施形態における１つのデバイスのアプリケーション・アーキテクチャを図示する。本デバイスは、“コンピュータ・プラットフォーム”を含む。コンピュータ・プラットフォームは、ハードウェア、ソフトウェア、又は両方を含むデバイスの構成要素を呼ぶことができる。例えば、それはオペレーティング・システム、基盤となるハードウェア構成要素を含むことができ、そのハードウェア構成要素は、チップ、ユーザ・インターフェース・ハードウェア（例えば、ディスプレイ、入力デバイスと出力デバイス）、ライブラリ、サポーティングＡＰＩ、オペレーティング・システムへの追加の拡張、等を含む。
【００３５】
１つの実施形態では、無線デバイスのアプリケーション・アーキテクチャ４００は、Ｄｅｖｉｃｅ  ＡＰＩ４０５、ＢＲＥＷ  ＡＰＩ４１０、ＢＲＥＷ  Ｅｘｔｅｎｓｉｏｎ４１５、Ｔｒｉｇｐｌａｙｅｒ４２０、Ａｃｔｏｒ４２５、及びＴｒｉｇ４３０を含む。Ｄｅｖｉｃｅ  ＡＰＩ４０５は、そのデバイスに明確に関係付けられた機能に対処するためのソフトウェア・プラットフォームによって使用されるそれらのＡＰＩを含むことができ、例えば、特定のプロセッサ又はＡＳＩＣ機能、特定のデバイス・ハードウェア機能、等である。
【００３６】
ＢＲＥＷ  ＡＰＩ４１０は、ＱＵＡＬＣＯＭ株式会社によって開発されたソフトウェア・プラットフォームである。ＢＲＥＷ  ＡＰＩ４１０は、そのデバイスに対して特別に書き込まれることを必要とせずにＤｅｖｉｃｅ  ＡＰＩ４０５及びその他の機能を呼び出すためのアプリケーションに対する能力を提供する。言い換えると、アプリケーションからハードウェアの特定の側面を取り出し、それによってそのデバイス上でアプリケーションを実行する各特定のデバイスに対して、合わせる必要なく又はわずかに合わせることを必要とするだけで、アプリケーションが複数のデバイスに対して書き込まれることを可能にする。
【００３７】
ＢＲＥＷ  Ｅｘｔｅｎｓｉｏｎ４１５は、ＢＲＥＷプラットフォームに追加の能力、例えば、ＭＰ３プレーヤ、Ｊａｖａ（登録商標）  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅｓ（ジャヴァ仮想マシーン）、等、を追加する能力を提供する。
【００３８】
Ｔｒｉｇｐｌａｙｅｒ４２０、Ｔｒｉｇ４３０及びＡｃｔｏｒ４２５は、ＱＵＡＬＣＯＭ株式会社によって開発されたｕｉＯｎｅ（登録商標）アーキテクチャのコンポーネントである。これらのコンポーネントは、一般的にデバイス４００のユーザ・インターフェースの側面を呼ぶ。１つの実施形態では、Ｔｒｉｇ４３０は、コンパイルされたＴｒｉｇＭＬ（登録商標）コード、及びデバイス４００上にユーザ・インターフェースを与えるためのアプリケーションによって使用される他のリソース（それはメタデータ、テキスト・ファイル、及び画像を含むことができる）である。複数のＴｒｉｇ４３０及びＴｒｉｇへの最新版、Ｔｒｉｇｌｅｔ（図示されず）と呼ばれる、は、ユーザ・インターフェースに対して使用されることができる。
【００３９】
ＴｒｉｇＭＬコード、ＱＵＡＬＣＯＭ株式会社によって所有される、は、ＸＭＬに基づくデータ言語であり、そしてＴｒｉｇ４３０を書き表すためのユーザ・インターフェース表示言語として使用されることができ、そして移動体に的を絞った機能性、双方向ユーザ・インターフェース・イベント・モデルの利点を含み、そしてその他の利点の中でピクセル位置決定の利点を含む。
【００４０】
Ａｃｔｏｒ４２５は、基盤となるＣコードを含み、Ｔｒｉｇを基盤となるＤｅｖｉｃｅ  ＡＰＩ４０５及び／又はＢＲＥＷ  ＡＰＩ４１０に結びつける。Ａｃｔｏｒ４２５は、しかも入力／出力のための実行可能なもの（executables）として機能することができる。そして複数のアクタが基盤となるＤｅｖｉｃｅ  ＡＰＩ及びＢＲＥＷ  ＡＰＩを結び付けるので、それらはコンピュータ・プラットフォーム機能へのアクセスを有する。
【００４１】
たとえ、Ｔｒｉｇｐｌａｙｅｒ４２０が図４では分離されているとしても、Ｔｒｉｇｐｌａｙｅｒ４２０は、ＢＲＥＷ  Ｅｘｔｅｎｓｉｏｎ４１５として与えられることができる。Ｔｒｉｇｐｌａｙｅｒは、Ｔｒｉｇ及びＡｃｔｏｒを使用してユーザ・インターフェースを与えるために使用される。
【００４２】
図４の考察は、ＱＵＡＬＣＯＭ株式会社のｕｉＯｎｅアーキテクチャ（コンパイルされたＴｒｉｇＭＬ、Ｔｒｉｇｐｌｙｅｒ、ＢＲＥＷ  ＡＰＩ、等を含む）に関してであるが、これは説明の目的のためであり、そして本発明が他のデータ言語、コンピュータ・プラットフォームとソフトウェア・プラットフォーム並びにデバイス・アーキテクチャを含むことが、理解されるであろう。
【００４３】
図５は、本発明の１実施形態におけるユーザ・インターフェースを更新するシステム及びＴｒｉｇｐｌａｙｅｒ４２０、Ａｃｔｏｒ４２５及びＴｒｉｇ４３０を図示するアーキテクチャを説明するブロック図である。デバイス５００は、Ｔｒｉｇｐｌａｙｅｒ４２０、Ａｃｔｏｒ４２５及びＴｒｉｇ４３０を含む。Ｔｒｉｇは、ＴｒｉｇＭＬコード５０５、テキスト・ストリング５１０、画像５１５、及び更新チャネル５２０（更新チャネルは、ＵＲＬを規定しそしてＴｒｉｇｌｅｔ５３０を引き出すタイミング方式を規定することができる）を含むことができる。Ｔｒｉｇは、無線を介して更新されることができ、それによってデバイスが製造者をとっくに離れてしまった後で、ユーザ・インターフェースが更新されることを可能にする。サーバ５２５は、新たなＴｒｉｇ及び又はＴｒｉｇの更新されたコンポーネント（例えば、Ｔｒｉｇｌｅｔ５３０）をダウンロードするために使用されることができ、それゆえデバイスのためのユーザ・インターフェースがカスタム化されることを可能にする。
【００４４】
図６は、本発明の１実施形態において言語の共通変数によって体系化される複数の類似のリソース参照値を管理することに関係するファイル構造６００を説明するブロック図である。１つの実施形態は、ソフトウェア開発ツール及びその構造をアクセスするための実行プロセスを使用してファイル構造６００を作り出すことに関する使用を含む。ソフトウェア開発ツールの一例は、ＱＵＡＬＣＯＭ株式会社によって所有されるｔｒｉｇｂｕｉｌｄｅｒとｔｒｉｇｐｕｂｌｉｓｈｅｒを含む。本構造をアクセスするための実行プロセスの一例は、ｔｒｉｇｐｌａｙｅｒを含む。ユーザ・インターフェース・エレメントを構築する際に、ｔｒｉｇｂｕｉｌｄｅｒは、そのエレメントの側面を規定する属性を開発者から受け取る。このユーザ・インターフェース・エレメント及びファイル構造は、図４及び図５に関係して説明されたＴｒｉｇ中に常駐することができる。１つの属性は、＄ｌａｎｇ属性を含むことができる。ファイル構造は、共通変数、例えば、＄ｌａｎｇ変数、により体系化され、そしてリソース参照値を含み、その結果共通変数が一旦規定されると、同様なリソース値は、共通変数を修正して使用することによって同じ命令を使用して参照されることができる。
【００４５】
複数の言語を管理することを可能にするシステムを構築する際に、開発者は、次のようなＴｒｉｇＭＬエレメントを作り出す：
<text res=”text/$lang/a”>
構築ツールは、開発者がサポートすることを望んでいる言語をその開発者から同様に受け取る。例えば、開発者は、英語及びフランス語を選択することができる。上記の例では、テキスト・リソース“ａ”が、既に作り出されており、そして付随する英語値及びフランス語値を有する。
【００４６】
１つの実施形態は、開発者によって選択されるリソース“ａ”及び言語に基づいてファイル構造を作り出す。図６は、ファイル構造６００の一例を図示する。この例では、英語版におけるテキスト・リソース参照値“ａ”は、“ハロー”６０５の値を有し、そしてテキスト・リソース“ａ”のフランス語版に対しては“ボンジュール”６１０の値を有する。
【００４７】
図７は、本発明の１実施形態において言語の共通変数によって体系化される複数の類似のリソース参照値を管理することに関係するより複雑なファイル構造７００を図示する。複数のリソース間の関連を用いてファイル構造７００を構築することは、それらの管理を単純化する。例えば、図７において、テキスト・リソース参照値“ａ”は、“ハロー”７０５，７１０の２つの異なる表示を表し、そしてテキスト・リソース“ｂ”は、“グッドバイ”７１５，７２０の２つの異なる表示を表す。
【００４８】
図７を続けて、異なるリソースは、＄ｌａｎｇ変数を使用するアクセスであり、次のようである：
text/$lang/a
もし“＄ｌａｎｇ”が“英語”として規定される場合、上の表現は、“ハロー”に決められる。もし“＄ｌａｎｇ”が“フランス語”として規定される場合、上の表現は、“ボンジュール”に決められる。同じリソース参照値“ａ”が関連するテキスト・リソースの２つの表現、すなわち、“ハロー”と“ボンジュール”、をアクセスするために使用されることに、注意する。
【００４９】
図８は、本発明の１実施形態において言語の共通変数によって体系化される複数の類似のリソース参照値及び異なる参照形（例えば、テキストと画像を含む）を管理することに関係する別の１つのより複雑なファイル構造８００を図示する。上記及び下記に説明されるように、任意のリソース型は、言語変数を使用してテキスト・リソースを単に操作するのではなく、変数語形変化の管理を使用して与えられることができる。
【００５０】
＄ｌａｎｇ変数の決定
１つの実施形態では、ｔｒｉｇｐｌａｙｅｒは、コンパイルされたコード中の＄ｌａｎｇ変数を決めるために使用されることができる。しかしながら、いずれかのパーサ又は別のコード解析器が使用され得ることは、当業者により理解される。さらに、コードは、必ずしもコンパイルされる必要がない。
【００５１】
＄ｌａｎｇ変数は、デバイスによって、開発者によって、アプリケーションによって又はその変数をアクセスすることができる他のエンティティによって設定されることができる又は変更されることができる。１つの語形変化では、＄ｌａｎｇは、デフォルト値、例えば、“英語”を有し、そして後の時点においてデバイスによって変更されることができる。
【００５２】
＄ｌａｎｇ値が変更されるべきであれば、ｔｒｉｇｐｌａｙｅｒは、どのリソースにアクセスするかを決定するときにその値を使用するように試みる。言語リソースが存在するはずがなければ、ｔｒｉｇｐｌａｙｅｒは、最後の有効な＄ｌａｎｇ値に戻ることができる。例えば、＄ｌａｎｇの前の値が英語であり、そして次にドイツ語に変更された場合に、下記の表現に遭遇する：
text/$lang/a
ｔｒｉｇｐｌａｙｅｒは、“text/German/a”を見つけようと試みるはずである。しかしながら、もし“ドイツ語”が存在しない場合、ｔｒｉｇｐｌａｙｅｒは、有効であった前の＄ｌａｎｇ値に戻ろうとするはずである。それゆえ、もし英語の＄ｌａｎｇ値が前にうまく使用された場合、上記の表現に遭遇したときに、ｔｒｉｇｐｌａｙｅｒは、“text/English/a”を見つけようと試みるはずである。
【００５３】
あるいは、ｔｒｉｇｐｌａｙｅｒは、常にそれに戻る＄ｌａｎｇに対するデフォルト値を有することができる。そしてさらに別の１つの代案は、リソースが見つけなかったエラーのような、エラーを返すことがある。
【００５４】
複数の実施形態は、言語及び＄ｌａｎｇ変数に関して説明された。しかしながら、別の変数が変数値を制御するために同じ方法で言語以外に使用されることができる。例えば、変数は、サポートされる複数のデバイス、その他のデバイス・リソース、例えば、スクリーンの大きさ、機能、等を管理するために使用されることができる。いずれかのリソースが本明細書中に記載された方法及び装置を使用して管理されることができることが、認識される。
【００５５】
本発明の実施形態のさらなる説明
Ｔｒｉｇ又はＴｒｉｇｌｅｔ（ＵＩエレメント）中のリソースのパスが＄ｌａｎｇを含み、そしてあなたが複数の言語をコンパイルする場合に、各言語に対する各リソース・データは、２文字の国コードで置き換えられたパスの＄ｌａｎｇ部分を含むであろう。（注：示されない限り明細書全体を通して“（複数の）Ｔｒｉｇ”の使用は、（複数の）Ｔｒｉｇ又は（複数の）Ｔｒｉｇｌｅｔを呼ぶ）。
【００５６】
例えば、テキスト・リソースは、３ヶ国語を含み、パスは、text/$lang/greetingであり、
en=hello
de=guten tag
fr=bonjour
これらのパスは、次のように拡張される
text/en/greeting
text/de/greeting
text/fr/greeting。
【００５７】
ＴｒｉｇＭＬ中のパスを参照するために、＄ｌａｎｇ変数は、パス中に保持され、そして、Ｔｒｉｇｐｌａｙｅｒは、手持ち機器の言語を照合し、そして正しいリソースが複数の値の存在を含むように選択する。
【００５８】
<?xml version=”1.0” encoding=”UTF-8”?>
<trigml>
<layer>
<group>
<text res=”text/$lang/mlang”/>
</group>
</layer>
</trigml>
デフォルト言語
デフォルト言語は、Ｔｒｉｇプロパティ中で搬送するために使用する特別な情報であり、その結果、ｔｒｉｇがコンパイルされるときにデフォルト言語は言語の /config/supportedLangsデータ・リスト中の最初の言語になる。
【００５９】
１つの実施形態では、コンパイラは、それがそのコンパイラに渡される配列中の最初の言語であると仮定することができる。
【００６０】
ＴｒｉｇＰｌａｙｅｒ
Ｔｒｉｇｐｌａｙｅｒは、Ｔｒｉｇがサポートする言語の新たな行の別のリストを含んでいる /config/supportedLangs のところに位置するテキスト・リソースを現在読み出す。リスト中の最初の言語は、“デフォルト”言語であり、それは手持ち機器上で選択された言語がサポートされていないはずであれば、プレーヤがたよりにする。
【００６１】
もし、上記のリソースが存在しない場合に、＄ｌａｎｇは、ＮＵＬＬストリングを返すであろう。
【００６２】
動作（behavior）の一例は、下記を含む：
・現在の手持ち機器の言語を試す
・ｔｒｉｇによってサポートされていない場合、最後に上手く使用された言語をたよりにする
・最後に上手く使用された言語がない場合（例えば、最初に電源を入れる場合）、最初にサポートされる言語をたよりにする。
【００６３】
Ｐａｒｃｅｌ変更
別の１つの実施形態では、Ｐａｒｃｅｌｆｏｒｃｅコードの使用は、リソース・オブジェクト is_multilang 上の方法によって、リソースが多言語であるか否かどうかの意味を引き出す。この方法は、ストリング＄ｌａｎｇが、そのリソース・オブジェクトのためのリソース・パス中に存在するかどうかを検査する。
【００６４】
オブジェクトのリソース・パスがｌａｎｇの新たな独立変数（argument）であるとき、もしそれが渡される場合に、それは渡された言語で現在の＄ｌａｎｇを置き換える。このコードがバー・ファイルの中に入るリソース・パスを生成しているときに、その時には、このコードは、ＴｒｉｇＣｏｍｐｉｌｅｒによって呼び出されることができる。get_resource_path の全てのその他の使用は、例えば、ＴｒｉｇＢｕｉｌｄｅｒにおける使用のために＄ｌａｎｇを置き換えることなくパスを返す。
【００６５】
しかも、Ｔｒｉｇが多言語であるか又はそうでないかを知るために検査することを統一するためのコールがある。Ｔｒｉｇオブジェクト上の方法 is_multilang は、それが含んでいる全てのリソースが多言語であるかを検査する。この共通コードは、複数の場所で使用され、そして共通コードを１つの場所に置く良いプログラミング手法に続く。
【００６６】
このようにして取り出すことによって、将来において複数の言語の取り扱いの異なるインプリメンテーションへとさらに容易に移ることができる。
【００６７】
上の方法及びソフトウェア設計の説明は、同様に装置に実装されることができ、ＲＡＭ中に又は他のメモリ記憶デバイス中に命令として記憶されることができる。本明細書中に示されたプロセスが特定の順番で連続的に例示されそして説明されてきているとはいえ、他の実施形態では、プロセスのステップは、別の順番で、複数回、及び／又は並行に実行されることができる。さらに、ある複数の実施形態では、複数のプロセスにおいて記載された１又はそれより多くのステップは、別々のステップとして実行されることができ、より少ない数のステップへと統合されることができる、又はおそらく完全に省略されることができる。
【００６８】
これまでの開示が本発明の例示的な実施形態を示している一方で、様々な変更及び変形が添えられた特許請求の範囲によって規定されるように本発明の精神及び範囲から逸脱することなく記載された実施形態に行われることができることに、注意すべきである。さらに本発明の要素が、単数形で記載される又は特許請求されることがあるが、複数形は、単数形への限定が明確に述べられない限り予期される。
【符号の説明】
【００６９】
１００…通信環境，２５０…コンピュータ・プラットフォーム，４００…アプリケーション・アーキテクチャ，５０５…ＴｒｉｇＭＬコード，５１０…テキスト・ストリング，５１５…画像，５２０…更新チャネル，５３０…ＵＲＬ及びＴｒｉｇｌｅｔ，６００，７００，８００…ファイル構造。
【図１】
0005437322.tif 000002
【図２】
0005437322.tif 000003
【図３】
0005437322.tif 000004
【図４】
0005437322.tif 000005
【図５】
0005437322.tif 000006
【図６】
0005437322.tif 000007
【図７】
0005437322.tif 000008
【図８】
0005437322.tif 000009