(57)【特許請求の範囲】
【請求項１】
複数のリソース・ファイルとアプリケーション・プログラムのコンパイルまたは実行の前に文脈内で翻訳されるテキストの再検討を可能にするビジュアル・リソース・ファイル・ビルダ・ツールとを使用してアプリケーション・プログラムに各国語サポートを提供するシステムであって、前記システムは記憶装置を有し、
前記記憶装置は、
所定の文字列のための目標言語のテキストを定義する定義データを有するＤＥＦＩＮＥキーワードを含む第１リソース・ファイルであって、ＤＥＦＩＮＥオブジェクトのプロパティ・シートは文字列及び変更可能な文字列の値を入力するようにユーザに促すためのものである、前記第１リソース・ファイルと、
第２リソース・ファイルに含まれる各キーワード及びそのキーワード・データのビジュアル表現を含むビジュアル・フォーマットで表示される第２リソース・ファイルであって、前記第２リソース・ファイル内で文字列が使用される場所では、定義された文字列の値が前記ビジュアル・リソース・ファイル・ビルダ・ツールによって解析されて、該解析の結果に応じて表示装置にビジュアルに表現される、前記第２リソース・ファイルと
を記録し、前記システムは前記ビジュアル・リソース・ファイル・ビルダ・ツールによって制御され、
前記制御の下で前記コンピュータは、ＩＮＣＬＵＤＥキーワード・オブジェクトを介して前記第１リソース・ファイルを読み込み、該第１リソース・ファイル内のＤＥＦＩＮＥオブジェクトをメモリに記憶し、そして前記第２リソース・ファイル内の文字列及び文字列の値を、前記メモリに記憶された文字列及び文字列の値に対して検査して、特定の文字列の値が変更された場合、前記第２リソース・ファイル内の文字列の値を前記メモリに記憶された文字列の値と置換し、前記第２リソース・ファイルに含まれるＳＴＲＩＮＧＴＡＢＬＥキーワードのキーワード・データとして前記第１リソース・ファイル内のＤＥＦＩＮＥキーワード・データによって定義される文字列を前記ビジュアル・リソース・ファイル・ビルダ・ツールのグラフィカル・ユーザー・インターフェイスによって表示装置に表示する、前記システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、リソース・ファイルを作成するための単純化された処理を提供するための直観的なグラフィカル・ユーザ・インターフェースを提供するための、データ処理システム内での技法に関する。具体的にいうと、本発明は、開発者がリソース・ファイルのフォーマットを詳細に知ることを必要としない、ビジュアル・モデルを介してリソース・ファイルを作成できる技法を提供する。
【０００２】
【従来の技術】
コンピュータ・プログラムには、論理部分とデータ部分の両方が含まれる。コンピュータ・プログラムに含まれるデータの１タイプを、リソースと称する。リソースには、アイコン、カーソル、メニュー、ダイアログ・ボックス、特定のタイプのテキスト、オーディオ・クリップ、アニメーション・クリップ、ビットマップなどを含めることができる。リソースは、グラフィカル・ユーザ・インターフェース、マルチメディア・プログラムで広範囲に使用され、プログラムのインターフェースに含まれるテキストを異なる言語で提示する能力を提供するために、各国語サポートすなわちドイツ語、日本語、ロシア語を可能にするのに使用される。
【０００３】
リソースは、通常は、コンピュータ・プログラムの通常のデータ・セグメントに常駐しない。リソース・データは、通常はリソース・ファイル内に維持され、他のタイプのプログラム・データとは別に、異なる形で扱われる。たとえば、Ｗｉｎｄｏｗｓ(R) オペレーティング・システムが、ＣまたはＣ＋＋プログラミング言語で記述されたプログラムなどを、実行のためメモリにロードする時には、オペレーティング・システムは、通常は、ディスク上にリソースを残す。Ｗｉｎｄｏｗｓ（R)は、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標である。プログラムの実行中に特定のリソースが必要になった時に限って、オペレーティング・システムは、そのリソースをメモリにロードする。
【０００４】
一部のオブジェクト指向言語では、リソース・ファイルが多少異なる形で扱われる。たとえば、ＳｍａｌｌｔａｌｋやＳｃｒｉｐｔＸでは、アプリケーションまたはプログラムによって使用されるリソースは、データ・オブジェクトに変換され、実行中に必要に応じてアプリケーションによって使用されるためにオブジェクト・プールまたはリソース・プールに置かれる。
【０００５】
リソース・ファイル作成の現況技術は、最良のものであっても大変な作業である。通常、何らかのタイプのテキスト・エディタを使用して、テキストとしてリソース・ファイルを作成する。すなわち、開発者は、リソース・データを含むか要求する（たとえば既存のファイルから）テキスト・ベース・ファイルを、適当なフォーマットでゼロから記述しなければならない。完成したリソース・ファイルは、その後、アプリケーションのコードの残りと共に、作成中のアプリケーションにコンパイルされる。コンパイルされたアプリケーションを実行する時に、正確さについてリソース・データをビジュアルに検査することができる。開発者が、リソース・ファイル作成中にリソース・ファイル内で書式設定エラーを含めたか、存在しないデータ・ファイルを要求したか、リソース・ファイルの作成中にリソースの名前を間違えた場合、これらの誤りは、そのリソース・ファイルを含むアプリケーションを実行中にビジュアルに検査するまでわからない。
【０００６】
もう１つの問題が、リソース・ファイルを作成するための既存の技法に関連する。開発者は、リソース・ファイルの正確なフォーマットを知らなければならない。コンパイルの前にテキスト・ファイルを検査する以外には、リソース・ファイルをアプリケーションと共にコンパイルし、そのアプリケーションを実行した後でなければ試験を実行できない。後者の問題によって、開発者の時間が浪費され、計算リソースが消費される。というのは、アプリケーションのコンパイルと実行にかなりの時間がかかる可能性があるからである。
【０００７】
さらに、リソース・ファイルは、各国語サポートを提供するための主な技法である。アプリケーションをコンパイルする時に、ドイツ語テキスト（英語テキストではなく）を含むリソース・ファイルを使用すると、ドイツ語版のアプリケーションができる。各国語サポートを提供する処理には、通常は、翻訳者にリソース・ファイルのテキスト部分を所望の言語に翻訳させることが含まれる。しかし、リソース・ファイルに対して翻訳を実行する処理は、時間がかかり、複雑であることがしばしばである。リソース・ファイルの特定の要素だけを翻訳しなければならない。しかし、標準リソース・ファイルはテキスト・ファイルであるから、翻訳が必要な部分を分離することは困難である。さらに、誤りを見つけるためにアプリケーション内の文脈で翻訳を再検討する前に、プログラムのコンパイルと実行が必要である。翻訳と誤り検査の処理全体が、時間のかかる処理であり、したがって、非常に高価である。したがって、プログラムの翻訳版の製作は、非常に骨のおれる作業である。
【０００８】
したがって、リソース・ファイルの扱いと作成されるリソース・ファイルに含まれるデータの再検討が単純化されるようなフォーマットを有するリソース・ファイルの単純化された作成を可能にする技法が必要である。
【０００９】
【発明が解決しようとする課題】
本発明の目的は、リソース・ファイルの作成を可能にするためのビジュアル・ツールを提供することである。
【００１０】
本発明のもう１つの目的は、必要なフォーマットの深い知識を持たない開発者がリソース・ファイルを作成できるようにする技法を提供することである。
【００１１】
本発明のもう１つの目的は、他の構成要素に対して行われた変更の影響を受けるリソース・ファイルの構成要素を自動更新する、リソース・ファイル作成ツールを提供することである。
【００１２】
本発明のもう１つの目的は、コンパイルの前に誤りを簡単に検査できる、リソース・ファイル作成ツールを提供することである。
【００１３】
【課題を解決するための手段】
本発明の他の目的及び長所は、一部は以下の説明及び図面に開示され、一部は、説明から明白になるか、本発明の実践によって学ぶことができる。
【００１４】
前述の目的を達成するため、本明細書で広範囲に説明される本発明の目的に従って、本発明は、キーワードのそれぞれがリソース・ファイル・ビルダ・ツールのグラフィカル・ユーザ・インターフェースに表示できる選択可能なアイコン表現を有する、開発中のリソース・ファイルに含めることができる各キーワードのキーワード・クラスを含むクラス・ライブラリと、アイコン表現のうちの１つを選択することによって、キーワード・クラスのうちの１つをユーザが選択できるようにするための第１サブプロセスと、選択されたキーワード・クラスのキーワード・データを開発者が入力するよう促すための第２サブプロセスと、インスタンス・データとして入力キーワード・データを有する選択されたキーワード・クラスのインスタンスをリソース・ファイル内に保存するための第３サブプロセスとを含む、リソース・ファイルの作成を可能にするための、媒体に含まれるコンピュータ可読コードを含むリソース・ファイル・ビルダ・ツールを提供する。リソース・ファイル・ビルダ・ツールには、さらに、保存されたインスタンス・データが、リソース・ファイル内のキーワード・クラスの保存された他のインスタンスのいずれかのインスタンス・データに影響するかどうかを判定し、影響を受けるインスタンス・データを更新するための第４サブプロセスを含めることができる。
【００１５】
本発明は、各キーワード・クラスが開発中のリソース・ファイルに含めることができるキーワードのそれぞれに応答する、複数のキーワード・クラスと、前記キーワード・クラスのそれぞれの選択可能なビジュアル表現と、キーワード・クラスのビジュアル表現の選択時にキーワード・データを入力するようユーザに促すプロパティ・シートを、ユーザに表示するために作成するための第１サブプロセスと、開発者がプロパティ・シートにキーワード・データを入力し、プロパティ・シートを保存した後に、入力キーワード・データを含む、キーワード・クラスのキーワード・オブジェクトを作成するための第２サブプロセスと、保存されたキーワード・オブジェクトのビジュアル表現を表示用に作成するための第３サブプロセスとを含む、開発者がリソース・ファイルをビジュアルに構築できるようにするための、媒体に記憶されたコンピュータ可読コードを含むビジュアル・リソース・ファイル・ビルダ・ツールも提供する。ビジュアル・リソース・ファイル・ビルダ・ツールには、さらに、キーワード・オブジェクトと共に保存された入力キーワード・データが、他のキーワード・オブジェクトのいずれかの他のキーワード・データに影響するかどうかを判定し、他のキーワード・オブジェクトの他のキーワード・データが影響を受ける場合に、そのキーワード・データを更新する、第４サブプロセスを含めることができる。その代わりに、ビジュアル・リソース・ファイル・ビルダ・ツールに、さらに、キーワード・オブジェクトのビジュアル表現の選択時に、前にキーワード・オブジェクトと共に保存されたキーワード・データをユーザが変更できるようにするために、キーワード・オブジェクトのプロパティ・シートを表示する、第５サブプロセスを含めることができる。
【００１６】
本発明はさらに、各キーワードの保存時に各キーワードに対応するグラフィカル・ユーザ・インターフェース内のビジュアル・オブジェクトを作成し、表示するための第１サブプロセスと、ビジュアル・オブジェクトのうちの１つの選択時に、選択されたビジュアル・オブジェクトに対応するキーワードの、キーワード・データと変更可能なキーワード・データとを含むプロパティ・シートを表示する第２サブプロセスと、プロパティ・シートに含まれるキーワード・データを変更することによって選択されたキーワードのキーワード・データをユーザが変更できるようにするための第３サブプロセスとを含む、リソース・ファイルに含まれる各キーワードに対応する選択可能なグラフィカル表現を、リソース・ファイル・ビルダ・ツールのグラフィカル・ユーザ・インターフェース内にビジュアルに表示するための、コンピュータ可読コードを提供することができる。
【００１７】
さらに、本発明は、所定の文字列の目標言語でのテキストを定義する定義データを有するＤＥＦＩＮＥ（定義）キーワードを含む第１リソース・ファイルと、各キーワード及び第２リソース・ファイルに含まれるそのキーワード・データのビジュアル表現を含む、ビジュアル・フォーマットで表示される第２リソース・ファイルとを含み、第２リソース・ファイルが、ＩＮＣＬＵＤＥ（インクルード）キーワードを介して前記第１リソース・ファイルを含み、前記第２リソース・ファイルに含まれるＳＴＲＩＮＧＴＡＢＬＥ（文字列テーブル）キーワードのキーワード・データとして前記第１リソース・ファイル内のＤＥＦＩＮＥキーワード・データによって翻訳される文字列をビジュアルに表示することを特徴とする、アプリケーションのコンパイルまたは構築の前に、文脈内で翻訳されるテキストの再検討を可能にする、複数のリソース・ファイルを使用するアプリケーションとビジュアル・リソース・ファイル・ビルダとに各国語サポートを提供するためのコンピュータ可読コードを提供する。
【００１８】
図面を参照して本発明を説明するが、図面のすべてを通じて、同様の符号は同一の要素を表す。
【００１９】
【発明の実施の形態】
図１は、本発明を実施できる代表的なワークステーション・ハードウェア環境を示す図である。図１の環境には、関連周辺装置を含む、パーソナル・コンピュータなどの代表的な単一ユーザ・コンピュータのワークステーション１０が含まれる。ワークステーション１０には、マイクロプロセッサ１２と、既知の技法によってマイクロプロセッサ１２とワークステーション１０の構成要素の間を接続し、その間の通信を可能にするのに使用されるバス１４が含まれる。ワークステーション１０には、通常は、ユーザ・インターフェース・アダプタ１６が含まれ、ユーザ・インターフェース・アダプタ１６は、バス１４を介してマイクロプロセッサ１２を、キーボード１８、マウス２０、または、接触感知スクリーン、ディジタル化入力パッドなど１種または複数のユーザ・インターフェース装置とすることができる他のインターフェース装置２２に接続する。また、バス１４は、ＬＣＤスクリーンまたはモニタなどの表示装置２４を、表示アダプタ２６を介してマイクロプロセッサ１２に接続する。また、バス１４は、メモリ２８と、ハードディスク駆動装置、テープ駆動装置などを含めることができる永久記憶装置３０にマイクロプロセッサ１２を接続する。
【００２０】
ワークステーション１０は、通信チャネル３２を介して他のコンピュータまたはコンピュータのネットワークと通信する。ワークステーション１０は、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク内のこのような他のコンピュータと関連付けることができ、また、ワークステーション１０は、別のコンピュータとのクライアント／サーバ配置構成のクライアントとすることができる。これらの構成のすべて、ならびに、適当な通信ハードウェア及び通信ソフトウェアは、当技術分野で既知である。
【００２１】
図２は、本発明を実施できるデータ処理ネットワーク４０を示す図である。データ処理ネットワーク４０には、それぞれに複数の個々のワークステーション１０が含まれるＬＡＮ４２及び４４を含む、複数の個々のネットワークが含まれる。その代わりに、当業者に諒解されるとおり、ＬＡＮに、ホスト・プロセッサに結合された複数の知能ワークステーションを含めることができる。
【００２２】
さらに図２を参照すると、データ処理ネットワーク４０には、メインフレーム・コンピュータ４６などの複数のメインフレーム・コンピュータを含めることもでき、このメインフレーム・コンピュータ４６は、通信リンク４８によってＬＡＮ４４に結合されることが好ましい。メインフレーム・コンピュータ４６は、International Business Machines Corporation（ＩＢＭ）社が販売するEnterprise Systems Architecture/370またはEnterprise Systems Architecture/390コンピュータを使用して実施することができる。応用分野によっては、Application System/400（ＡＳ／４００とも称する）などのミッドレンジ・コンピュータを使用することができる。「Enterprise Systems Architecture/370」はＩＢＭ社の商標であり、「Enterprise Systems Architecture/390」、「Applications System/400」及び「AS/400」は、ＩＢＭ社の登録商標である。
【００２３】
メインフレーム・コンピュータ４６は、ＬＡＮ４４の遠隔記憶装置として働くことができる記憶装置５０に結合することもできる。同様に、ＬＡＮ４４は、通信リンク５２からサブシステム制御ユニット／通信コントローラ５４及び通信リンク５６を介してゲートウェイ・サーバ５８に結合することができる。ゲートウェイ・サーバ５８は、ＬＡＮ４２をＬＡＮ４４にリンクするように働く個別のコンピュータまたは知能ワークステーションであることが好ましい。
【００２４】
当業者であれば、メインフレーム・コンピュータ４６を、ＬＡＮ４４から地理的に非常に離れた位置に置くことができ、同様に、ＬＡＮ４４を、ＬＡＮ４２からかなり離れた位置に置くことができることを諒解するであろう。たとえば、ＬＡＮ４２をカリフォルニアに配置し、ＬＡＮ４４をテキサスに配置し、メインフレーム・コンピュータ４６をニューヨークに配置することができる。
【００２５】
本発明を実施するソフトウェア・プログラミング・コードは、通常は、ワークステーション１０の永久記憶装置３０など、何らかのタイプの永久記憶装置に記憶される。クライアント／サーバ環境では、このようなソフトウェア・プログラミング・コードを、サーバに関連する記憶装置を用いて記憶することができる。ソフトウェア・プログラミング・コードは、ディスケット、ハード・ドライブ、ＣＤ−ＲＯＭなど、データ処理システムと共に使用するためのさまざまな既知の媒体のいずれかで実施できる。コードは、そのような媒体で配布でき、また、あるコンピュータ・システムのメモリまたは記憶装置からあるタイプのネットワークを介して他のコンピュータ・システムへ、そのような他のシステムのユーザによる使用のために、そのユーザへ配布することができる。物理媒体上でソフトウェア・プログラム・コードを実施する技法及び方法と、ネットワークを介してソフトウェア・コードを配布する技法及び方法は、周知であり、本明細書ではこれ以上説明しない。
【００２６】
これから、本発明の好ましい実施例を、図３ないし図１１を参照して説明する。
【００２７】
好ましい実施例では、本発明はＪａｖａ（R)プログラミング言語で実施される。Ｊａｖａ（R)は、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃ．社の商標である。Ｊａｖａ（R)は、インターネットと共に使用するために拡張されたオブジェクト指向言語である。Ｊａｖａ（R)、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向言語には、通常は、その言語でプログラミング（アプリケーションを開発）する時に開発者が使用するためのクラス・ライブラリが含まれる。クラス・ライブラリとは、通常は比較的高水準の機能を提供する再利用可能なクラスの組である。クラスとは、オブジェクト指向言語の基本構成単位の１つであり、これには、機能とデータの組合せを表現したコードが含まれる。開発者は、クラス・ライブラリから、作成中のソフトウェア・アプリケーションにクラスを追加することによって、アプリケーションを作成する。クラスのコピーまたはインスタンスが、作成中のアプリケーションに含まれる。このクラスのコピーまたはインスタンスを、オブジェクトと称する。
【００２８】
開発者は、個々の言語の特徴に応じて、複数の方法でクラスを操作し、利用することができる。たとえば、ほとんどのオブジェクト指向クラスは、カプセル化、多義性及び継承を含む複数の基本特性を有する。多義性を介して、ソフトウェア構成要素またはオブジェクトは、別の構成要素またはオブジェクトを正確に知らなくても、そのオブジェクトの要求を行うことができる。要求を受け取るオブジェクトまたは構成要素は、要求を解釈し、その内部データ及び内部関数に従って、要求を実行する方法を決定する。継承という概念を用いると、クラスを簡単に修正できるようになる。開発者は、親クラスのすべてから挙動を継承するサブクラスを記述できる。
【００２９】
オブジェクト指向プログラミングのこれらの特性のすべてならびに関連するオブジェクト指向プログラミング技法は、当技術分野で周知であり、本明細書ではこれ以上説明しない。Ｊａｖａ（R)プログラミング言語で記述されたリソース・ファイル作成用ツールに関して本発明を説明するが、技量を有するプログラマは、本発明を他のプログラミング言語で実施することができる。
【００３０】
図３は、モニタに表示されたウィンドウ６２内の、本発明によるビジュアル・リソース・ファイル・ビルダ・ツールのグラフィカル・ユーザ・インターフェース（ＧＵＩ）６０を示す図である。好ましい実施例によれば、ビルダ・ツールは、Ｊａｖａ（R)プログラミング言語で記述される。したがって、ビルダ・ツールは、Ｊａｖａ（R)実行時環境が埋め込まれているか含まれている、オペレーティング・システムまたは他のユーザ環境のいずれでも動作する。ＧＵＩ６０には、ツール・バー６４が含まれ、ツール・バー６４には、「ＯＰＥＮ  ＮＥＷ  ＦＩＬＥ（新規ファイルを開く）」、「ＣＬＯＳＥ  ＦＩＬＥ（ファイルを閉じる）」などの一般的な機能のアイコン表現と、開発者がリソース・ファイルに含めることを所望する可能性があるリソース・データの型に対応するリソース・ファイル・キーワード要素のアイコン表現が含まれる。標準テキスト・リソース・ファイルには、通常は、同一または異なる型の１つまたは複数のデータ要素が含まれる。キーワードは、リソース・データの型を定義するのに使用され、各キーワードは、データの異なる型を表す。各キーワードは、それ自体に関連する独自のフォーマットを有する。通常のテキスト・リソース・ファイル１１０が、図４のウィンドウ１１２内に図示されている。リソース・ファイルには、「ＩＮＣＬＵＤＥ（インクルード）」、「ＳＯＵＮＤ（音声）」、「ＳＴＲＩＮＧＴＡＢＬＥ（文字列テーブル）」、「ＭＥＮＵ（メニュー）」などのキーワード１１４と、そのフォーマットされたデータ及びデータ参照と、正式のフォーマットの空白、大文字化及び文字列が含まれる。
【００３１】
ビルダ・ツールには、各キーワードに対応するＪａｖａ（R)クラスを含むクラス・ライブラリが含まれる。対応するＪａｖａ（R)クラスは、キーワード・シェルになるキーワードのそれぞれに関連して作成される。言い換えると、各キーワードの適当なフォーマットが、Ｊａｖａ（R)クラスに書き込まれる。各キーワードのＪａｖａ（R)クラスには、キーワードを完全にし、リソース・ファイル内で使用できるようにするのに必要な適当な情報を開発者に提供させる手段も書き込まれる。好ましい実施例では、各キーワード・クラスにプロパティ・シートが含まれ、このプロパティ・シートは、開発者がキーワードとそのデータを作成または修正しようとする時に、開発者に表示される。各キーワードのプロパティ・シートでは、そのキーワード・データを完成させるのに必要な具体的なデータだけが開発者に要求される。たとえば、「ＩＮＣＬＵＤＥ」キーワードの場合、対応するプロパティ・シートでは、リソース・ファイルにインクルードされるファイルの位置と名前を入力するように促すプロンプトが開発者に表示される。開発者は、空白、終了文など、そのキーワードに関する他のフォーマットの考慮点について心配する必要はない。開発者は、実際には、キーワード・クラスが保存される時に、具体的なＪａｖａ（R)キーワード・クラスのインスタンス（オブジェクト）をリソース・ファイルに追加する。クラス自体は、再利用のためにビルダ・ツール内で使用可能なままになる。すなわち、そのクラスのオブジェクトは、キーワードのリソース・データまたはリソース・データ情報であるプロパティ・シートを介して、インスタンス・データを用いて開発者によって移植される。
【００３２】
音声、アニメーション・クリップ、メニューなど、特定のタイプのデータ・ファイルに関連する大量のキーワードがあることに留意されたい。時間の経過に伴って、新しいタイプのデータ及び対応するキーワードを作成することができる。ビジュアル・リソース・ファイル・ビルダは、Ｊａｖａ（R)で記述されているので、このツールが他のキーワード・オブジェクトを作成できるようにするための新しいクラスの組を追加することによってビルダ・ツールを変更することは比較的簡単である。
【００３３】
ツール・バー６４は、ビジュアル作成ツールに共通する規範である。ツール・バー６４のアイコンは、オブジェクトとも称するが、保存、ファイルを開くなど、ほとんどのファイルに共通する呼出し可能な機能を表す。さらに、ツール・バー６４のアイコンの一部は、リソース・ファイル用のキーワード・オブジェクトの作成に使用できるキーワード・クラスを表す。このビルダ・ツールでは、ビジュアル・オブジェクトとその機能が、Ｊａｖａ（R)クラスのインスタンスを介して使用可能にされるが、このＪａｖａ（R)クラスのインスタンスもオブジェクトと称する。したがって、ビジュアル・オブジェクトは、実際のＪａｖａ（R)コードを構成し、ビジュアル・オブジェクトのコードを含む、基礎となるＪａｖａ（R)オブジェクトから区別される。このビジュアル作成規範は、ワード・プロセッサ、パワー・ツールなど、さまざまな種類のファイルを作成する多数のツールに共通する。したがって、このようなインターフェース自体の作成の詳細は、技量を有するプログラマの範囲に含まれるので、説明しない。そうではなくて、本発明によるビジュアル・リソース・ファイル・ビルダ・ツールの機能を、図５及び図６の流れ図を参照して説明する。この説明から、技量を有するプログラマであれば、本発明を実施できるはずである。
【００３４】
開発者が使用するためにビジュアル・リソース・ファイル・ビルダ・ツールを開いた状態で、開発者は、ツール・バー６４から「ＮＥＷ  ＦＩＬＥ（新規ファイル）」アイコン６６を選択することによって、新しいリソース・ファイルの作成を開始することができる（ステップ１００）。ステップ１００で「ＮＥＷ  ＦＩＬＥ」アイコンを選択した際には、空の新規リソース・ファイルが作成され、開発者は、新規リソース・ファイルの名前を与えるように促される（ステップ１０２）。
【００３５】
ステップ１００で「ＮＥＷ  ＦＩＬＥ」アイコンを選択する代わりに、開発者は、既存リソース・ファイルをアクセスするために「ＯＰＥＮ  ＥＸＩＳＴＩＮＧ  ＦＩＬＥ（既存ファイルを開く）」アイコン６８を選択することによって、既存のリソース・ファイルを再オープンすることができる（ステップ１０４）。その後、開発者は、既存リソース・ファイルの名前を与えるように促され、有効な名前を入力した際に、その既存リソース・ファイルが、ビジュアル・リソース・ファイル・ビルダ・ツールの作業域７０内に開かれる（ステップ１０６）。複数のビジュアル・キーワード・オブジェクトを含むリソース・ファイルのビジュアル表現が、作業域７０内に表示される。
【００３６】
その後、開発者は、新規リソース・ファイルの作成または既存リソース・ファイルの修正に関連する複数の選択肢を有する。ステップ１０８により、開発者は、「ＰＡＣＫＡＧＥ  ＮＡＭＥ（パッケージ名）」キーワードをリソース・ファイルに追加するか、リソース・ファイル内の既存の「ＰＡＣＫＡＧＥ  ＮＡＭＥ」キーワードを修正することができる。キーワード「ＰＡＣＫＡＧＥ  ＮＡＭＥ」は、Ｊａｖａ（R)言語で記述されたアプリケーションだけに関連する。Ｊａｖａ（R)クラスの組は、通常は、パッケージと称するものにグループ化される。したがって、作成中のリソース・ファイルを最終的にＪａｖａ（R)クラスにすることを開発者が所望する場合、結果のＪａｖａ（R)クラスが関連付けられるＪａｖａ（R)パッケージを指定することが適切である。リソース・ファイルをＪａｖａ（R)クラスにしない場合、開発者は、ＰＡＣＫＡＧＥ  ＮＡＭＥオプションを使用する必要はない。通常、あるＪａｖａ（R)クラスは、単一のパッケージだけに属する。したがって、単一のパッケージ名だけを提供することが適切である。
【００３７】
開発者がツール・バー６４から「ＰＡＣＫＡＧＥ  ＮＡＭＥ」アイコンを選択する場合、ビルダ・ツールは、まず、開かれているリソース・ファイル用に「ＰＡＣＫＡＧＥ  ＮＡＭＥ」オブジェクトがすでに作成されているかどうかを判定する（ステップ１１０）。ステップ１１０で、「ＰＡＣＫＡＧＥ  ＮＡＭＥ」オブジェクトがすでにリソース・ファイル内に存在すると判定される場合、ビルダ・ツールは、そのＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクトから既存のプロパティ・シートを編集用に表示させる。ＰＡＣＫＡＧＥ  ＮＡＭＥキーワードのプロパティ・シート７２を、図７に示す。ＰＡＣＫＡＧＥ  ＮＡＭＥキーワードのプロパティ・シート７２には、データ入力フィールド７４が含まれ、このデータ入力フィールド７４に、そのリソース・ファイルが関連付けられる、前に入力されたＪａｖａ（R)パッケージ名が表示される。データ入力フィールド７４を介して、開発者は、結果のリソース・ファイルがＪａｖａ（R)クラスへの変換の後に関連付けられるＪａｖａ（R)パッケージの新しい名前を入力することができる。
【００３８】
その代わりに、ステップ１１０で、リソース・ファイル内にＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクトがまだ存在しないと判定された場合、ビルダ・ツールは、ＰＡＣＫＡＧＥ  ＮＡＭＥクラスのインスタンス（ＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクト）を作成し、そのＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクトの空の新しいプロパティ・シートを表示し（ステップ１１４）、その結果、開発者がパッケージ名（インスタンス・データ）を入力できるようにする。ＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクトがそのリソース・ファイルについてすでに存在しようとしまいと、どちらの状況の処理も、ステップ１１６に進む。ここでは、開発者は、プロパティ・シートの修正を選択することができる。プロパティ・シートの修正は、このＰＡＣＫＡＧＥ  ＮＡＭＥプロパティ・シートの場合には、データ入力フィールド７４内に、新しいパッケージ名を入力するか、既存のパッケージ名を修正することによる。開発者がステップ１１６でＰＡＣＫＡＧＥ  ＮＡＭＥプロパティ・シートにパッケージ名を入力した場合、開発者は、「Ａｐｐｌｙ（適用）」ボタン７６か、「Ｃａｎｃｅｌ（取消）」ボタン７８を選択するという選択肢を有する（ステップ１１８）。開発者がステップ１１８でＡｐｐｌｙボタン７６を選択した場合、データ入力フィールド７４に入力された名前が、新しいＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクト内にインスタンス・データとして保存されるか、既存のＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクトが修正されるかが適宜行われ、与えられた名前（Ｊａｖａ（R)オブジェクトのインスタンス・データである）を有するＪａｖａ（R)の「ＰＡＣＫＡＧＥ  ＮＡＭＥ」クラスのインスタンスが、リソース・ファイルと共に保存される。このＪａｖａ（R)オブジェクトには、ビルダ・ツール内でビジュアル・リソース・ファイル表現が開かれる時に必ず作業域７０内に表示されるビジュアル表現であるビジュアルＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクト８０のコードが含まれる。その後、プロパティ・シートを閉じる（ステップ１２２）。ＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクトは、リソース・ファイル内の他のオブジェクトとの調整を必要とするオブジェクトではない（ステップ１２４）ので、処理はステップ１２８に進む。
【００３９】
その代わりに、開発者がＣａｎｃｅｌボタン７８を選択した場合、開発者がデータ入力フィールド７４に変更または新規データを入力していようがいまいが、ＰＡＣＫＡＧＥ  ＮＡＭＥのプロパティ・シート７２が閉じ、データ入力フィールド７４に入力された修正は、保存されない（ステップ１２６）。さらに、前のＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクトが存在しておらず、データ入力フィールド７４にデータが入力されなかった場合には、作成されるリソース・ファイルにはＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクトは保存されない（ステップ１２６）。ＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクトが存在していた場合、そのオブジェクトは、一切変更なしにリソース・ファイル内で維持される。
【００４０】
開発者は、ステップ１２８で「ＣＬＯＳＥ  ＦＩＬＥ（ファイルを閉じる）」オプションを選択することもできる。この選択は、ステップ１２２でＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクトを作成または修正した後か、ステップ１２０でＣＬＯＳＥ  ＳＨＥＥＴ（シートを閉じる）オプション（Ｃａｎｃｅｌボタン）を選択した後に行うことができ、ＣＬＯＳＥ  ＳＨＥＥＴオプションの代わりに行うこともできる。ステップ１２８でＣＬＯＳＥ  ＦＩＬＥオプションが選択された場合、リソース・ファイルがクローズされ、「適用（Ａｐｐｌｉｅｄ）」されなかった修正は保存されない。また、新しいＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクトのデータ入力フィールドに名前が与えられなかった場合には、ＰＡＣＫＡＧＥＮＡＭＥオブジェクトは保存されない（ステップ１３０）。その後、処理は、この作成処理の先頭に戻り、開発者は、新規リソース・ファイルの作成を開始し（ステップ１００）、既存リソース・ファイルを開く（ステップ１４０）か、ビジュアル・リソース・ファイル・ビルダ全体を閉じる（ステップ１３２）ことができる。ステップ１３２の後には、処理が終了する。
【００４１】
ステップ１１４ないしステップ１３２に関して説明した処理は、開発者がリソース・ファイルに追加する可能性がある他のすべての型のキーワード・オブジェクトに適用される。ステップ１１０ないしステップ１１２は、ＰＡＣＫＡＧＥ  ＮＡＭＥキーワード以外のキーワードの処理には適用されない。というのは、他の複数のキーワードが、単一のリソース・ファイル内に存在することができるからである。
【００４２】
リソース・ファイルのビジュアル表現は、リソース・ファイル・ビルダ・ツールの作業域７０内にグラフィカルに表示される。グラフィカル・キーワード・オブジェクトが、リソース・ファイルに含まれるキーワード・ベースの構成要素のそれぞれのビジュアル表現として提供される。たとえば、図３に示したリソース・ファイルでは、リソース・ファイルに、ビジュアルＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクト８０、ビジュアル「ＩＮＣＬＵＤＥ」オブジェクト８２（「ＩＮＣＬＵＤＥ」キーワードがそのリソース・ファイルの一部であるという事実を表す）、ビジュアル「ＤＥＦＩＮＥ」オブジェクト８４、第１ビジュアル「ＩＭＡＧＥ（画像）」オブジェクト８６、第２ビジュアル「ＩＭＡＧＥ」オブジェクト８８、「ＳＯＵＮＤ（音声）」オブジェクト９０（サウンド・クリップがそのリソース・ファイルに含まれることを示す）、ビジュアル「ＳＴＲＩＮＧＴＡＢＬＥ」オブジェクト９２及びビジュアル「ＭＥＮＵ（メニュー）」オブジェクト９４が含まれる。ＰＡＣＫＡＧＥ  ＮＡＭＥキーワード以外の他のキーワード型のほとんどは、所与のリソース・ファイル内に複数含めることができる。たとえば、図３にグラフィカルに示されたリソース・ファイルには、２つのＩＭＡＧＥキーワードが含まれる。さらに、図３からわかるように、各ビジュアル・オブジェクトには、それが表すキーワードの型と、そのキーワードに関連するリソース・データの表示またはその一部とを開発者に示すビジュアル表現が含まれる。たとえば、第２ＩＭＡＧＥオブジェクト８８には、リソース・ファイル内の第２のＩＭＡＧＥキーワードに関連する画像が含まれる。ビジュアルＩＮＣＬＵＤＥオブジェクト８２によって、キーワードの名前（ＩＮＣＬＵＤＥ）と、それによってこのリソース・ファイルに組み込まれるファイルの名前（＼ｒｅｓｏｕｒｃｅ＼ｇｅｒｍａｎ．ｐｉｉ）が提供される。
【００４３】
図５及び図６の流れ図に戻ると、ステップ１０２で新規ファイルを開いた後か、ステップ１０６で既存ファイルを開いた後か、ステップ１２８でキーワードのプロパティ・シートに関する処理を完了した後（開発者がファイルの処理の継続を所望する場合）に、開発者は、ステップ１３２、１３４及び１３６に示されるように、複数の選択肢を有する。ステップ１３２により、開発者は、ツール・バー６４からキーワード・アイコンを選択できる。選択されたキーワード・アイコンが、ＩＮＣＬＵＤＥアイコン９６、ＤＥＦＩＮＥアイコン９８、ＳＴＲＩＮＧＴＡＢＬＥアイコン１００またはＭＥＮＵアイコン１０２など、ＰＡＣＫＡＧＥＮＡＭＥアイコン以外のキーワード・アイコンの場合、処理は、前にステップ１１４ないしステップ１３０で説明した形で、選択されたキーワードについて説明通りに継続する。プロパティ・シートと結果のビジュアル・オブジェクトは、使い易さを拡張するためキーワードごとにカスタマイズされた形で設計される。さらに、別のキーワードのデータに影響するキーワードのプロパティ・シート（インスタンス・データ）に対して変更が行われる場合に、他のキーワードのデータが自動的に更新されるように、調整処理が追加される。これから、この処理を、他のキーワードに関して説明する。
【００４４】
ステップ１３２により、開発者がツール・バー６４からＤＥＦＩＮＥアイコン９８を選択した時には、ＤＥＦＩＮＥキーワード用のＪａｖａ（R)クラスのインスタンスが作成され、ＤＥＦＩＮＥオブジェクトの空のプロパティ・シートが、作業域７０内に提示される（ステップ１１４）。ＤＥＦＩＮＥオブジェクトのプロパティ・シート１２０を、図８に示す。ＤＥＦＩＮＥキーワードのデータは、基本的にマクロとして働く。開発者は、文字列を定義した後に、文字列の値を与え、すると、文字列がリソース・ファイル内で使用される場所では必ず、定義された値が、文字列の代わりにビジュアル・リソース・ファイル（及び、そのリソース・ファイルを使用するアプリケーション）でビジュアルに表現されるようになる。プロパティ・シート１２０では、文字列が、第１列に置かれ、それに対応する値が、第２列に置かれる。プロパティ・シート１２０では、第１列の単一の文字列１２２が「STR_AUTHOR」、第２列のその文字列の値１２４が「Richard Redpath」として示されている。開発者は、第１列または第２列の既存の項目のテキストを修正するか、「Ａｄｄ（追加）」ボタン１２６を選択することによってＤＥＦＩＮＥオブジェクトのプロパティ・シート１２０を修正する。Ａｄｄボタン１２６を選択すると、第１列と第２列に空のデータ入力フィールドが表示され、開発者は、ここに新しく定義する文字列とそれに対応する値を入力することができる。上で説明したようにプロパティ・シート１２０に新規データを入力するかプロパティ・シート１２０を修正した後に（ステップ１１６）、開発者は、「Ａｐｐｌｙ」ボタン１２８を選択することができる（ステップ１１８）。開発者がＡｐｐｌｙボタン１２８を選択する場合、ＤＥＦＩＮＥオブジェクトのインスタンスが保存され、プロパティ・シート１２０が閉じる（ステップ１２２）。
【００４５】
ＤＥＦＩＮＥキーワードは、定義により、リソース・ファイルに含まれる他の型のキーワードに影響を及ぼすために作成されるマクロである。したがって、ＤＥＦＩＮＥキーワード・オブジェクトは、ステップ１２４による調整を必要とする。ステップ１３８により、リソース・ファイル内のすべてのＤＥＦＩＮＥオブジェクトからのデータを解析し、メモリに記憶する。さらに、ＩＮＣＬＵＤＥオブジェクトを介してリソース・ファイルにインクルードされるファイルがあればすべて読み取って、それにＤＥＦＩＮＥオブジェクトが含まれるかどうかを判定する。そうである場合には、ＤＥＦＩＮＥ文字列とそれに対応する値も、メモリに記憶する（ステップ１４０）。次に、リソース・ファイル内のキーワード・オブジェクトの一部である文字列のすべてを、メモリに記憶された文字列及びその記憶された値に対して検査する。特定の文字列の値が変更された場合、新しい値を、検査されたキーワード・オブジェクト内のインスタンス・データとして記憶して、古い値を置換する。したがって、あるキーワード・オブジェクトに関連して保存される文字列値に対する変更のすべてが、他のキーワード・オブジェクトに即座に反映される（ステップ１４２）。
【００４６】
ＰＡＣＫＡＧＥ  ＮＡＭＥキーワードの例と同様に、ステップ１１６で開発者がプロパティ・シートを修正せず、「Ｃａｎｃｅｌ」ボタン１３０を選択した場合、または、ＤＥＦＩＮＥのプロパティ・シート１２０を修正した後に、Ａｐｐｌｙボタン１２８を選択せずにＣａｎｃｅｌボタン１３０を選択した場合には（ステップ１２０）、プロパティ・シートが閉じ、それに対して行われた修正は、保存されない（ステップ１２６）。ステップ１４２の後に、プロパティ・シート１２０が閉じ、処理はステップ１２８に進む。ステップ１２８では、開発者がＣＬＯＳＥ  ＦＩＬＥオプションを選択した場合に、ファイルがクローズされ、適用（Ａｐｐｌｙ）されなかった修正は保存されない（ステップ１３０）。開発者がファイルをクローズしない場合、処理はステップ１３２、１３４及び１３６に戻り、開発者は、これらの選択肢のいずれかを選択できる。
【００４７】
ステップ１３６により、開発者が、ＤＥＦＩＮＥオブジェクトのビジュアルＤＥＦＩＮＥオブジェクト８４などのビジュアル・オブジェクトをダブルクリックすることによるなど、処理のためリソース・ファイル内の既存のキーワード・オブジェクトのうちの１つを選択した場合、選択されたオブジェクトのその特定のインスタンスのプロパティ・シートが、編集用に表示される（ステップ１４４）。その後、処理は、ステップ１１６から、表示されたプロパティ・シートに関連して上で説明した形で継続する。
【００４８】
その代わりに、ステップ１３４により、開発者は、ツール・バー６４からＤＥＬＥＴＥ（削除）アイコン１０４を選択することができる。このような選択が行われた際には、ビルダ・ツールは、リソース・ファイル内に存在するキーワード・オブジェクトのリストを表示する。その後、開発者は、削除のためにリスト内の１つまたは複数のキーワード・オブジェクトを選択することができ（ステップ１４６）、その後、Ａｐｐｌｙボタンの選択時に、識別された１つまたは複数のオブジェクトが、リソース・ファイルから削除され、修正された版のリソース・ファイルが保存される（ステップ１４８）。その後、ステップ１２４で、削除されたオブジェクトに、リソース・ファイル内の他のキーワード・オブジェクトによって使用されていた情報が含まれたかどうかを判定する（ステップ１２４）。そうである場合には、ステップ１３８ないしステップ１４２を繰り返し、他のキーワード・オブジェクトに含まれるデータを適宜調整、更新し、その後、処理はステップ１２８に進む。キーワード・オブジェクトがＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクトであった場合など、調整が不要な場合には、処理は直接ステップ１２８に進み、前に説明した形で継続される。
【００４９】
本発明は、各国語サポートとも称する、翻訳されたアプリケーションを提供するための単純化された技法も提供する。エンド・ユーザに表示されるテキスト・リソース・データは、文字列データとしてリソース・ファイル内に維持されることが好ましい。したがって、ＤＥＦＩＮＥキーワード・オブジェクトの文字列の値を変更することによって、アプリケーション内の残りの論理またはデータに影響を及ぼすことなく、文字列値を修正できる。したがって、ドイツ語の文字列を定義するＤＥＦＩＮＥキーワード・オブジェクトを提供することによって、そのリソース・ファイルを含むアプリケーションのエンド・ユーザに、その文字列値がドイツ語で表示されるようになる。さらに、翻訳される文字列のＤＥＦＩＮＥキーワードを別々のリソース・ファイルに保存することによって、別々のリソース・ファイルだけを翻訳者に提供すればよいことになる。したがって、リソース・ファイル全体を翻訳者に提供することがなくなり、翻訳者が翻訳不要のリソース・データを誤って修正する可能性が減る。
【００５０】
図９は、図３のビジュアルＳＴＲＩＮＧＴＡＢＬＥオブジェクト９２のプロパティ・シート１６０を示す図である。プロパティ・シート１６０は、ＤＥＦＩＮＥキーワード・オブジェクトのプロパティ・シートに類似しているが、余分なレベルの間接指定を識別するために、２列ではなく３列が設けられている。ＤＥＦＩＮＥキーワード・データと同様に、ＳＴＲＩＮＧＴＡＢＬＥキーワード・データも、マクロとして働く。しかし、この場合、文字列は、直接または間接のいずれかの形で定義できる。第１（文字列）列１６２にある文字列「Product（製品）」には、第２（定義）列１６４の直接値「IBM Visual Builder (C) 1996」が与えられ、したがって、第３（間接値）列１６６には値がない。しかし、第１列１６２の残りの文字列は、第２列１６４の文字列によって定義される。これらの文字列は、図３のビジュアルＩＮＣＬＵＤＥオブジェクト８２によって表されるＩＮＣＬＵＤＥキーワード・オブジェクトによってリソース・ファイルｓａｍｐｌｅ．ｊｒｃに「インクルード」される別の翻訳リソース・ファイルに含まれるＤＥＦＩＮＥキーワード・データで定義される。対応するＤＥＦＩＮＥキーワード・データの文字列のドイツ語訳を定義する、ドイツ語テキスト版の翻訳リソース・ファイル１７０を、図１０に示す。単に翻訳者に翻訳リソース・ファイル１７０を提供することによって、大量の面倒なファイルの転送を必要とせず、また、誤ったデータを修正する危険性なしに、適当な翻訳を行うことができる。翻訳済みの翻訳リソース・ファイル１７０は、ＩＮＣＬＵＤＥキーワード・オブジェクトを介して、図３に示されたリソース・ファイルｓａｍｐｌｅ．ｊｒｃに単純に組み込まれる。調整処理を介して、翻訳リソース・ファイル１７０によって提供される値は、（ビジュアルＳＴＲＩＮＧＴＡＢＬＥオブジェクト９２の第３列を見るために水平スクロール・コントロール１０６を使用することによって）ビジュアルＳＴＲＩＮＧＴＡＢＬＥオブジェクト９２内で見ることができ、また、図９のビジュアルＳＴＲＩＮＧＴＡＢＬＥオブジェクト９２のプロパティ・シート１６０を表示することによって見ることができる。したがって、アプリケーションに影響する翻訳は、作業域７０に表示されるリソース・ファイルをインクルードするアプリケーションをコンパイル、実行する前に、作業域７０内で表示することができる。
【００５１】
ビジュアル・ビルダ・ツールを使用してリソース・ファイルに追加される可能性がある潜在的なキーワードのそれぞれのプロパティ・シートの正確なフォーマットは、リソース・ファイル・ビジュアル・ビルダ・ツールの作業域７０に表示される対応するビジュアル・オブジェクトと同様に、固定されていない。あるキーワードの実際のビジュアル・オブジェクトとプロパティ・シートの両方が、そのキーワードを簡単に識別できるものでなければならず、そのキーワードを介してリソース・ファイルにインクルードされるデータに関する何らかの種類の表示を提供しなければならない。新しいキーワードを作成する際には、各キーワードの新しいＪａｖａ（R)クラスが、適当なプロパティ・シート及びビジュアル・オブジェクトと共にビジュアル・ビルダに追加されると想定されている。
【００５２】
開発者によるリソース・ファイルの完成時には、Ｊａｖａ（R)言語ビジュアル・リソース・ファイルを、さまざまな言語のいずれかで記述されたアプリケーションによって使用可能な標準フォーマットのリソース・ファイルに変換する必要がある。このようなテキスト・リソース・ファイルを、図４に示す。図４に示されたファイルは、図３の作業域７０に示されたビジュアル・フォーマット・リソース・ファイルに対応する。ビジュアル・ビルダ・ツールは、ビジュアル・リソース・ファイルを含むＪａｖａ（R)キーワード・オブジェクトを、テキスト・リソース・ファイルの確立された標準規格に適合するテキスト・リソース・ファイルに変換するためのマッピング機能を備えるようにプログラミングされている。基本的に、この変換処理中には、ビルダ・ツールは、開発者によって入力されたデータを受け取り、テキスト・リソース・ファイルに必要なキーワード構造の中にそのデータを配置する。この必要な構造は、当技術分野で既知であり、マッピング機能は、入力データを構造内の適当な位置に配置する。
【００５３】
図１１の流れ図は、ビジュアル・フォーマット・リソース・ファイルを標準フォーマット・リソース・ファイルに変換する論理処理を示す図である。まず、変換時に結果の標準フォーマット・リソース・ファイルが出力されるファイルを開く（ステップ２００）。次に、ビジュアル・フォーマット・リソース・ファイルを検索して、ＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクトが含まれるか否かを判定する（ステップ２０２）。存在する場合、句「PACKAGENAME <パッケージ名>.<クラス名>」をファイルに書き込む（ステップ２０４）。「パッケージ名」は、結果のＪａｖａ（R)リソース・クラスを含むＪａｖａ（R)パッケージの名前であり、「クラス名」は、結果のＪａｖａ（R)リソース・クラスのクラスの名前である。ＰＡＣＫＡＧＥ  ＮＡＭＥオブジェクトが存在しない場合、または、ステップ２０４が完了した後には、処理はステップ２０６に進む。
【００５４】
次に、ビルダ・ツールは、ビジュアル・フォーマット・リソース・ファイルにＩＮＣＬＵＤＥオブジェクトが含まれるかどうかを判定する（ステップ２０６）。含まれる場合、ツールは、ＩＮＣＬＵＤＥオブジェクトごとに「INCLUDE <ファイル名>」を出力ファイルに書き込む（ステップ２０８）。
【００５５】
リソース・ファイルにＩＮＣＬＵＤＥオブジェクトが存在しない場合、または、すべてのＩＮＣＬＵＤＥオブジェクトを変換し終えた後に、処理はステップ２１０に進む。ステップ２１０では、ビジュアル・フォーマット・リソース・ファイル内にＳＴＲＩＮＧＴＡＢＬＥオブジェクトが存在するかどうかを判定する。存在する場合、ＳＴＲＩＮＧＴＡＢＬＥオブジェクトごとに、ビルダ・ツールは、まずリソース・ファイルに名前「STRINGTABLE」を書き込み、次に、後続行に、各文字列の名前とそれに対応する文字列値の組（１行に１組）を書き込む。上で述べたように、文字列値は、STR_FILEなどの変数とすることができ、この場合、値は、ＤＥＦＩＮＥキーワード・データで定義される。各文字列名とそれに対応する値を出力ファイルに書き込んだ後に、値の最後の組の次の行に、ＳＴＲＩＮＧＴＡＢＬＥキーワード・データの終りを示す「End STRINGTABLE」を書き込むことによってＳＴＲＩＮＧＴＡＢＬＥキーワードのフォーマットが完了する（ステップ２１２）。
【００５６】
ステップ２１４に示されるように、処理は、ビジュアル・フォーマット・リソース・ファイル内の残りの未処理のキーワード・オブジェクトのすべてについてこの形で継続される。上の説明と、標準キーワード・フォーマットが既知であるという事実から、ビジュアル・フォーマット・リソース・ファイルに含まれるキーワード・オブジェクトの変換を可能にする適当なコードを記述することと、まだ作成されていないキーワードの変換コードを将来に提供すること（ステップ２１６）は、技量を有するプログラマの範囲内である。
【００５７】
ビジュアル・フォーマット・リソース・ファイル内のキーワード・オブジェクトのすべての処理が完了したならば、処理は終了し、出力ファイルには、標準リソース・ファイルの処理の既知の技法に従ってさまざまな言語で記述されたプログラムと共に利用できるテキスト・フォーマット・リソース・ファイルが含まれる。
【００５８】
Ｊａｖａ（R)言語ビルダ・ツールに関して本発明を説明してきたが、本明細書に記載のビルダ・ツールは、他の多くの言語で記述することができる。また、本発明の好ましい実施例を説明したが、本発明の基本的な概念を習得したならば、当業者は、その実施例の追加の変形及び修正を考案できる。したがって、請求の範囲は、好ましい実施例とこのような変形及び修正の両方を、本発明の趣旨及び範囲に含まれるものとして含むものと解釈されなければならない。
【００５９】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００６０】
（１）各キーワードが、リソース・ファイル・ビルダ・ツールのグラフィカル・ユーザ・インターフェースに表示可能な選択可能アイコン表現を有する、開発中のリソース・ファイル内に含めることのできるキーワードのそれぞれのキーワード・クラスを含むクラス・ライブラリと、
アイコン表現のうちの１つを選択することによって、前記キーワード・クラスのうちの１つをユーザが選択できるようにするための第１サブプロセスと、
選択された前記キーワード・クラスのキーワード・データを入力するよう開発者に促すための第２サブプロセスと、
インスタンス・データとして入力キーワード・データを有する選択された前記キーワード・クラスのインスタンスを前記リソース・ファイル内に保存するための第３サブプロセスと
を含む、前記リソース・ファイルの作成を可能にするための、媒体に含まれるコンピュータ可読コードを含むリソース・ファイル・ビルダ・ツール。
（２）さらに、保存されたインスタンス・データが、前記リソース・ファイル内の前記キーワード・クラスのいずれかの他の保存されたインスタンスの前記インスタンス・データに影響するかどうかを判定し、影響される前記インスタンス・データを更新するための第４サブプロセスを含む、上記（１）に記載のリソース・ファイル・ビルダ・ツール。
（３）各キーワード・クラスが、開発中のリソース・ファイルに含めることのできるキーワードのそれぞれに応答する、複数のキーワード・クラスと、
前記キーワード・クラスのそれぞれの選択可能なビジュアル表現と、
前記キーワード・クラスのビジュアル表現の選択時に、キーワード・データを入力するようユーザに促すプロパティ・シートを、ユーザに表示するために作成するための第１サブプロセスと、
開発者が前記プロパティ・シートに前記キーワード・データを入力し、前記プロパティ・シートを保存した後に、入力キーワード・データを含む前記キーワード・クラスのキーワード・オブジェクトを作成するための第２サブプロセスと、表示のため保存された前記キーワード・オブジェクトのビジュアル表現を作成するための第３サブプロセスと
を含む、開発者が前記リソース・ファイルをビジュアルに構成できるようにするための、媒体に記憶されたコンピュータ可読コードを含むビジュアル・リソース・ファイル・ビルダ・ツール。
（４）さらに、前記キーワード・オブジェクトと共に保存された前記入力キーワード・データが、他のキーワード・オブジェクトの他のキーワード・データに影響するかどうかを判定し、前記他のキーワード・オブジェクトの前記他のキーワード・データが影響を受ける場合に、前記他のキーワード・データを更新する第４サブプロセスを含む、上記（３）に記載のビジュアル・リソース・ファイル・ビルダ・ツール。
（５）さらに、前記キーワード・オブジェクトのビジュアル表現の選択時に、前に前記キーワード・オブジェクトと共に保存された前記キーワード・データをユーザが修正できるようにするため、前記キーワード・オブジェクトの前記プロパティ・シートを表示する第５サブプロセスを含む、上記（３）に記載のビジュアル・リソース・ファイル・ビルダ・ツール。
（６）各キーワードの保存時に各キーワードに対応するグラフィカル・ユーザ・インターフェース内のビジュアル・オブジェクトを作成し、表示するための第１サブプロセスと、
前記ビジュアル・オブジェクトのうちの１つの選択時に、キーワード・データ及び修正可能なキーワード・データを含む、選択された前記ビジュアル・オブジェクトに対応するキーワードのプロパティ・シートを表示する、第２サブプロセスと、
前記プロパティ・シートに含まれる前記キーワード・データを修正することによって、選択されたキーワードの前記キーワード・データをユーザが修正できるようにするための第３サブプロセスと
を含む、リソース・ファイル・ビルダ・ツールのグラフィカル・ユーザ・インターフェース内に、リソース・ファイルに含まれる各キーワードに対応する選択可能なグラフィカル表現をビジュアルに表示するための、コンピュータ可読コード。
（７）所定の文字列のための目標言語のテキストを定義する定義データを有するＤＥＦＩＮＥキーワードを含む第１リソース・ファイルと、
第２リソース・ファイルに含まれる各キーワード及びそのキーワード・データのビジュアル表現を含む、ビジュアル・フォーマットで表示される第２リソース・ファイルと
を含み、前記第２リソース・ファイルが、ＩＮＣＬＵＤＥキーワードを介して前記第１リソース・ファイルを含み、前記第２リソース・ファイルに含まれるＳＴＲＩＮＧＴＡＢＬＥキーワードのキーワード・データとして前記第１リソース・ファイル内のＤＥＦＩＮＥキーワード・データによって翻訳される文字列をビジュアルに表示することを特徴とする、アプリケーションのコンパイルまたは構築の前に、文脈内で翻訳されるテキストの再検討を可能にする、複数のリソース・ファイルを使用するアプリケーションとビジュアル・リソース・ファイル・ビルダとに各国語サポートを提供するためのコンピュータ可読コード。
【図面の簡単な説明】
【図１】本発明を実施できるコンピュータ・ワークステーション環境のブロック図である。
【図２】本発明を実施できるネットワーク化されたコンピュータ環境を示す図である。
【図３】本発明によるビジュアル・リソース・ファイル・ビルダのグラフィカル・ユーザ・インターフェースを示す図である。
【図４】標準テキスト・リソース・ファイルを示す図である。
【図５】本発明によるビジュアル・リソース・ファイル・ビルダ・ツールの論理処理を示す流れ図である。
【図６】本発明によるビジュアル・リソース・ファイル・ビルダ・ツールの論理処理を示す流れ図である。
【図７】ＰＡＣＫＡＧＥ  ＮＡＭＥキーワードのプロパティ・シートを示す図である。
【図８】ＤＥＦＩＮＥキーワードのプロパティ・シートを示す図である。
【図９】ＳＴＲＩＮＧＴＡＢＬＥキーワードのプロパティ・シートを示す図である。
【図１０】ドイツ語翻訳データを含む標準テキスト・リソース・ファイルを示す図である。
【図１１】ビジュアル・フォーマット・リソース・ファイルを標準テキスト・リソース・ファイルに変換する論理処理の流れ図である。
【符号の説明】
１０  ワークステーション
１２  マイクロプロセッサ
１４  バス
１６  ユーザ・インターフェース・アダプタ
１８  キーボード
２０  マウス
２２  インターフェース装置
２４  表示装置
２６  表示アダプタ
２８  メモリ
３０  永久記憶装置
３２  通信チャネル
【図１】
0004366065.tif 000002
【図２】
0004366065.tif 000003
【図３】
0004366065.tif 000004
【図４】
0004366065.tif 000005
【図５】
0004366065.tif 000006
【図６】
0004366065.tif 000007
【図７】
0004366065.tif 000008
【図８】
0004366065.tif 000009
【図９】
0004366065.tif 000010
【図１０】
0004366065.tif 000011
【図１１】
0004366065.tif 000012