(57)【特許請求の範囲】
【請求項１】
コンピュータ・プログラムを実行することにより提供されるＧＵＩ環境にキャラクタ・ストリングを表示する方法であって、
（ａ）実行可能プログラムを格納するステップと、
（ｂ）検索キーと、前記キャラクタ・ストリングとを含み前記実行可能プログラムの実行により読み出し可能であり、かつリソース・ファイルとは別に構成され編集可能なテキスト・ファイルを格納するステップと、
（ｃ）前記実行可能プログラムを実行するステップと、
（ｄ）前記実行可能プログラムの実行により前記格納したテキスト・ファイルの検索キーを検索するステップと、
（ｅ）前記検索キーのイネーブルまたはディスエーブルを判断して、表示するキャラクタ・ストリングを格納するリソース・ファイルまたはテキスト・ファイルを読み出し、読み出されたファイルに格納されたキャラクタ・ストリングを表示させるステップと
を含む方法。
【請求項２】
前記表示させるステップは、前記検索キーがイネーブルであることを検出したときは、前記テキスト・ファイルに含まれるキャラクタ・ストリングを読み出すステップと、前記検索キーがディスエーブルであることを検出したときは、前記実行可能プログラムの前記リソース・ファイルに格納されたキャラクタ・ストリングを読み出させるステップとを含む、請求項１に記載の表示方法。
【請求項３】
ＧＵＩ環境にキャラクタ・ストリングを表示させることができるコンピュータ・プログラムを記録したコンピュータによる読み取り可能な記録媒体であって、実行可能プログラムと、検索キーと、前記キャラクタ・ストリングとを含んでなる前記実行可能プログラムの実行により読み出し可能であり、かつリソース・ファイルとは別に構成され編集可能なテキスト・ファイルとを格納し、
（ａ）前記実行可能プログラムを実行するステップと、
（ｂ）前記実行可能プログラムの実行により前記格納したテキスト・ファイルの前記検索キーを検索するステップと、
（ｃ）前記検索キーのイネーブルまたはディスエーブルを判断して、表示するキャラクタ・ストリングを格納するリソース・ファイルまたはテキスト・ファイルを読み出して、読み出されたファイルに格納されたキャラクタ・ストリングを表示させるステップと
を前記コンピュータに実行させる記録媒体。
【請求項４】
前記表示させるステップは、前記検索キーがイネーブルであることを検出したときは前記テキスト・ファイルに含まれるキャラクタ・ストリングを読み出すステップと、前記検索キーがディスエーブルであることを検出したときは前記実行可能プログラムに組み込まれたキャラクタ・ストリングを読み出すステップとを含む、請求項３に記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、修正の容易なコンピュータ・プログラムの作成方法等に関する。さらに、本発明はコンピュータ・プログラムが提供するＧＵＩ環境に表示するキャラクタ・ストリングやコンピュータの動作に関連するキャラクタ・ストリングを修正し易いプログラムの作成方法等に関する。さらに、本発明は多国言語をサポートし易いプログラムの作成方法等に関する。
【０００２】
【従来の技術】
ユーザの特定の利用目的に向けて開発されるアプリケーション・プログラム（以後アプリケーションという。）は、ユーザに様々なメッセージを提供してユーザと対話しながら実行される。パーソナル・コンピュータにおいてはＧＵＩ（グラフィック・ユーザ・インターフェース）というヒューマン・インターフェースを採用し、コンピュータに対する処理の実行指令（コマンド）や機能を表すアイコン、文字、および図形などを使って、直観的にそれらの意味や機能を理解できるようにしている。
【０００３】
Ｗｉｎｄｏｗｓ（マイクロソフト社の商標）やＯＳ／２（ＩＢＭ社の商標）などのＧＵＩ環境を提供するＯＳ（オペレーティング・システム）のもとで動作するアプリケーションは、ＯＳのライブラリに含まれるＡＰＩ（アプリケーション・プログラム・インターフェース）を利用してユーザに対するコマンドやデータの入力環境、入力方法、および結果等をウインドウ上に文字や図形で表示できる。アプリケーションの世界的な流通の拡大に伴い、ある国の言語により開発されたアプリケーションであっても、他の言語を使用する国で利用する機会が急速に増えてきており、文字を多くの国の言語に対応させるニーズが高まってきている。
【０００４】
通常アプリケーションはそれが動作するＯＳ環境の言語と同一になるように作成する。例えば英語のＯＳは、そのＧＵＩにおけるメッセージを英語で表示しており、したがってそのＯＳ上で動作するアプリケーションはメッセージを英語で表示するように開発する。さらに、アプリケーションがＯＳをコールするときは、アプリケーションからＯＳにキャラクタ・ストリングのメッセージを送り、ＯＳはキャラクタ・ストリングの文字列、英語、日本語等の言語の種類、全角、半角等の文字形式等を判断して、所定の定義に合致した場合のみ正しいメッセージとして受け取り後の処理を実行する場合もある。
【０００５】
いま、英語のＯＳ環境で開発された英語のアプリケーションをフランス人が利用する場合、アプリケーションのキャラクタ・ストリングはフランス語に翻訳することが好ましい。これはフランス人にとってたとえＯＳは英語であったとしてもアプリケーションのＧＵＩに表示されるメッセージはフランス語のほうが使いやすいからである。
【０００６】
アプリケーションは、通常、ＣＰＵが実行する命令を記述したコード部分とそのパラメータとしてのデータ部分の両方を含む。アプリケーションが含んでいるデータのひとつのタイプをリソースと称する。リソースには、アイコン、カーソル、メニュー、ダイアログ・ボックス、および特定の言語の文字等を含んでいる。リソースはＧＵＩおよびマルチメディア・プログラム等で広範囲に使用される。
【０００７】
いま、多くの国の言語に対応できるアプリケーションを開発するとき、メイン・ファイルとそのサブルーチンすなわちリソース・ファイルとに分割して作成すると都合がよい。アプリケーションはアセンブラ、ＣＯＢＯＬ、ＦＯＲＴＲＡＮ、Ｃ／Ｃ＋＋、ＰＬ１等の人間が理解できるプログラム言語によってソース・コード形式で記述される。
【０００８】
リソース・ファイルには、ＧＵＩやＯＳに提供するメッセージとして特定の言語および形式で作成されたキャラクタ・ストリングが含まれる。ある国の言語に基づいてソース・プログラムを作成した後にそれを他の国向けに書き換えるときは、メイン・ファイルのソース・コードは変更しないで、リソース・ファイルのソース・コードのメッセージに相当するキャラクタ・ストリングを翻訳して行う。ソース・コードはコンピュータが理解できないので、つぎに両者をそれぞれコンパイルしてオブジェクト・コードに変換し、適宜ＯＳが提供するライブラリを組み込んで実行可能プログラムを作成する。オブジェクト・コードは機械語ともいい「０」と「１」で表現される。
【０００９】
メイン・ファイルは実行の過程でリソース・ファイルを参照し、リソース・ファイルに含まれたメッセージを示すキャラクタ・ストリングをＧＵＩを通じてユーザに提供したり、直接ＯＳに提供する。したがってアプリケーションのメッセージを他の国の言語に翻訳して動作させようとする場合には、ソース・コードで記述されたリソース・ファイルのなかのキャラクタ・ストリングを翻訳して、各国ごとのリソース・ファイルを用意し、再度コンパイルして実行可能プログラムを作成する必要がある。
【００１０】
特開平１０−１１６１８５号公報には、このようなリソース・ファイルを作成する技術が開示されている。また、米国特許５６４４７７５号公報には、アプリケーションのテキスト部分をプログラム本体から分割してライブラリに登録し、メッセージを多くの国の言語に翻訳することを容易にする技術が開示されている。ライブラリは複数のアプリケーションに関連したテキストを表示するキャラクタ・ストリングと、特定の１つのアプリケーションに関連したキャラクタ・ストリングを含む。
【００１１】
【発明が解決しようとする課題】
アプリケーションが多数の国の言語をサポートしようとするとき、従来の方法ではソース・コードで記述されたリソース・ファイルのメッセージに相当するキャラクタ・ストリングを翻訳したのち、リソース・ファイルをコンパイルしてメイン・ファイルとともに実行可能プログラムを作成し、その動作を確認する必要があった。開発元では、あらかじめソース・コードで記述したアプリケーションをサポートする言語の数だけ作成し、それぞれコンパイルしてオブジェクト・コードからなる実行可能プログラムに変換して出荷していた。したがって、一旦出荷した後に、サポートしていない言語の必要性が出現した場合は、開発元においてソース・コードの書き換えを行うしかなかった。
【００１２】
また、日本で、日本語フォントをサポートする英語のＯＳ環境下で英語のアプリケーション・プログラムを動作させる場合には、重要なメッセージだけでも日本語で表示したいという要望もあった。たとえば、ポータブル・コンピュータのバッテリィ残量を測定し、ロー・レベルに達したときにはＡＣアダプタを挿入するようにユーザに促すメッセージは、作業データの喪失を防止する観点から重要であり、翻訳することがプログラムの動作に影響がない限りこの部分だけでも日本語にしておきたい場合があった。
【００１３】
さらにまた、ＯＳの言語環境が同一であっても、そのバージョンがアップしたときに、それまでのアプリケーションが動作しないという問題もあった。リソース・ファイルのキャラクタ・ストリングはＯＳに対するメッセージとして利用される。日本語ＯＳの環境下で開発されたアプリケーションでも、ＯＳのバージョンがアップしたときに、当初は全角のメッセージだけをＯＳが受付ており、バージョン・アップ後は半角のメッセージだけを受け付けるように変更されている場合がある。このときは、ソース・コードで記述されたリソース・ファイルのキャラクタ・ストリングを半角で記述し直す必要がある。これらの種々の問題から、メイン・ファイルやリソース・ファイルのソース・コードを修正しないでキャラクタ・ストリングを簡易に変更できる手法が待望されていたのである。
【００１４】
したがって、本発明の目的は修正の容易なコンピュータ・プログラムの作成方法、プログラム構造、および記憶媒体を提供することになる。さらにまた、本発明の目的は、ソース・プログラムを修正しないで、キャラクタ・ストリングを修正できるコンピュータ・プログラムの作成方法、プログラム構造、および記憶媒体を提供することにある。
【００１５】
本発明のさらに詳細な目的は、キャラクタ・ストリングの表示を含むＧＵＩ環境を提供するコンピュータ・プログラムにおいて、言語環境の変更またはプログラムの動作環境の変化に対応するために、キャラクタ・ストリングの修正を容易に行えるコンピュータ・プログラムの作成方法、プログラム構造、記憶媒体を提供することにある。
【００１６】
【課題を解決するための手段】
本発明の原理は、ＧＵＩに提供するメッセージや、プログラムの動作に関連して他のプログラムと交換するメッセージに相当するキャラクタ・ストリングを含むコンピュータ・プログラムの当該キャラクタ・ストリングを、テキスト・ファイルとして独立して作成したことにある。テキスト・ファイルはプログラムから参照されてキャラクタ・ストリングをプログラムに提供する。テキスト・ファイルはプログラムから参照される形式を備えているためメッセージを修正してもプログラム自体を変更する必要はない。テキスト・ファイルの変更はテキスト・エディタを利用して極めて容易に行える。
【００１７】
本発明の一の側面は、コンピュータ・プログラムが提供するＧＵＩ環境にキャラクタ・ストリングを表示する方法であって、（ａ）実行可能プログラムを提供するステップと、（ｂ）前記キャラクタ・ストリングを含み前記実行可能プログラムから参照することが可能なテキスト・ファイルを提供するステップと、（ｃ）前記実行可能プログラムを実行するステップと  （ｄ）前記実行可能プログラムから前記テキスト・ファイルを参照するステップと、（ｅ）前記参照したテキスト・ファイルに含まれるキャラクタ・ストリングを表示するステップとを有する。
【００１８】
テキスト・ファイルはキャラクタ・ストリングを含み、実行可能プログラムから参照できるように構成されている。したがって、実行可能プログラムはテキスト・ファイルのキャラクタ・ストリングを参照してＧＵＩに表示することができ、表示すべきキャラクタ・ストリングを変更するときは、変更したテキスト・ファイルを提供するだけでよい。ここに、キャラクタ・ストリングはＧＵＩ環境に表示すると同時に、他のプログラムのメッセージとしても利用されるものであってもよい。また、本発明のプログラムは、アプリケーションに限定されるものではなく、他のサービス・プログラム、デバイス・ドライバ等のプログラムであっても、ＧＵＩのメッセージや他のプログラムとの間で交換するメッセージに相当するキャラクタ・ストリングを含むプログラムであればよい。
【００１９】
本発明の他の側面は、コンピュータ・プログラムが提供するＧＵＩ環境にキャラクタ・ストリングを表示する方法であって、（ａ）実行可能プログラムを提供するステップと、（ｂ）前記キャラクタ・ストリングと検索キーを含み前記実行可能プログラムから参照することが可能なテキスト・ファイルを提供するステップと、（ｃ）前記実行可能プログラムを実行するステップと（ｄ）前記検索キーを検索するステップと、（ｅ）ステップ（ｄ）で、前記検索キーがイネーブルであることを検出したときは前記テキスト・ファイルが含むキャラクタ・ストリングを参照するステップと、（ｆ）前記参照したキャラクタ・ストリングを表示するステップと、（ｇ）ステップ（ｄ）で、前記検索キーがディスエーブルであることを検出したときは前記実行可能プログラムに組み込まれたキャラクタ・ストリングを表示するステップとを有する。
【００２０】
この構成を備える結果、テキスト・ファイルの検索キーがイネーブルのときは、テキスト・ファイルのキャラクタ・ストリングを参照し、ディスエーブルのときは実行可能プログラムに当初から含んでいたキャラクタ・ストリングを利用する。よって、実行可能プログラムのＧＵＩ環境の言語を翻訳したいときや、ＯＳの動作環境に変更があった場合のみテキスト・ファイルを作成して対応できる。いいかえると、プログラム中のキャラクタ・ストリングをテキスト・ファイルを編集するだけで制御できるということである。
【００２１】
本発明の他の側面は、このようなコンピュータ・プログラムの構造、作成方法、記録媒体に向けられる。さらにまた、本発明の他の側面は、制御に関連するキャラクタ・ストリングを含むコンピュータ・プログラムの作成方法に関する。この側面においては、当該キャラクタ・ストリングをテキスト・ファイルによりプログラムに提供することができるため、テキスト・ファイルの書き換えだけでキャラクタ・ストリングがＯＳ環境と一致しない不都合を容易に解消できる。
【００２２】
【発明の実施の形態】
［コンピュータの構成］
図１は本発明に係るアプリケーションを実行するコンピュータの概略ブロック図である。ＣＰＵ（中央演算処理装置）１０１は、コンピュータ１００の心臓部に当たり、コンピュータの入出力、命令の実行などすべての処理を行う。メイン・メモリ１０３はプログラムやデータを一時的に記憶する装置で、コンピュータ内部でＣＰＵ１０１がプログラムの実行やデータ処理を行う際、当該プログラムをＣＰＵに転送するために記憶したり作業結果を記憶したりする領域を提供する。ＨＤＤ１０５は、ＯＳ、ＢＩＯＳ、デバイス・ドライバ、アプリケーション・プログラム等のコンピュータ１００で実行するための各種プログラムやデータを格納しておき、必要に応じてメイン・メモリ１０３や他のコンポーネントに転送される。メイン・メモリ１０３に記憶されたプログラムやデータは、コンピュータの電源を停止すると消失するが、ＨＤＤ１０５に格納されたプログラムやデータは電源を停止しても維持することができる。
【００２３】
ディスプレイ１０７は、キーボード１１３やマウス１１５と共にヒューマン・インターフェースを実現するための装置で、ＧＵＩの環境下ではユーザにグラフィカルな出力情報を提供したり、コンピュータの操作やプログラムの実行のための入力環境を提供する。キーボード１１３はユーザが数字、文字、記号等でコンピュータに指示を与える機能を提供する。マウス１１５は、ＧＵＩ環境のもとでディスプレイに表示されたカーソルを移動し、ディスプレイ上のアイコンにアクセスしてコマンドを実行したり、プログラムに各種指示を与える働きをする。ＦＤＤ（フロッピー・ディスク・ドライブ）１０９はフロッピー・ディスク駆動用の装置で、ＣＤ−ＲＯＭドライブ１１１はＣＤ−ＲＯＭの読み取り専用装置である。通信コネクタ１１７は、インターネットやイントラネット等のネット・ワークをコンピュータに接続するためのインターフェースである。
【００２４】
ＨＤＤ１０５には、ＧＵＩ環境をサポートするＷｉｎｄｏｗｓやＯＳ／２などのＯＳが格納されており、起動時にメモりに読み出される。ＯＳはアプリケーションがＧＵＩを実現するために必要な基本的な機能をライブラリに格納したＡＰＩとして提供する。ライブラリにはコンパイル時に実行ファイルに組み込まれるスタティック・リンク・ライブラリや、実行ファイルが動的に参照するダイナミック・リンク・ライブラリ（ＤＬＬ）などが含まれる。
【００２５】
図１は本発明の実施例を説明する上で必要な範囲で概略的に記載したものであり、実際のコンピュータにはさらに多くのコンポーネントが搭載され、その接続関係も異なったもので実現されることは当業者にとって明らかである。したがって、本発明の趣旨を逸脱しない範囲でこれと異なるいかなる態様のコンピュータにおいても本発明のプログラムは実行できる。
【００２６】
図２に本発明の実施例に係るアプリケーションの作成方法を描いたフローチャートを示す。図３には、アプリケーションがディスプレイ上で提供するＧＵＩに相当するウインドウを示す。いま、コンピュータ１００で動作するＯＳは日本語、英語およびフランス語のフォントをサポートしており、アプリケーションは英語で作成されており、ウインドウのキャラクタ・ストリングだけ日本語またはフランス語に翻訳したい場合を考える。図３は、本実施例においてアプリケーションが提供するウインドウ内におけるキャラクタ・ストリングがリリース時は英語（Ａ）で表示され、その後日本語（Ｂ）またはフランス語（Ｃ）に翻訳して表示する場合のウインドウのイメージを示している。
【００２７】
本実施例のアプリケーションはソース・コードで記述したメイン・ファイル（ブロック２０１）、ソース・コードで記述したリソース・ファイル（ブロック２０３）からなる。しかし、本発明の趣旨は、アプリケーションがいかなるモジュール単位に分割されているかを問題にしないことは、後の説明で明らかになるであろう。また、これらのコードは任意のプログラム言語で記述することができる。
【００２８】
［メイン・ファイルの構造］
メイン・ファイルは当該プログラムの主たる機能を規定する部分であり、一般的にＯＳの言語環境に合致したキャラクタ・ストリングをウインドウに提供するように作成されている。メイン・ファイルのソース・コードの一部を図４に示す。メイン・ファイルを実行する過程において、ウインドウ上にキャラクタ・ストリングのメッセージを提供する場合にはメイン・ファイルからリソース・ファイル（ソース・コードは図示せず。）をコールしてリソース・ファイルに用意されたメッセージを表示するようになっている。また、メイン・ファイルは実行時にテキスト・ファイル（後に説明する。）中の検索キーの状態を検索するコードを含む。検索キーはアプリケーションがウインドウに提供すべきメッセージを示すキャラクタ・ストリングが、リソース・ファイルではなくてテキスト・ファイル中で定義されていることを示す。
【００２９】
メイン・ファイルを実行して、検索キーがイネーブルであることを発見したときは、テキスト・ファイル中のキャラクタ・ストリングを表示できるようになっている。検索キーがディスエーブルであることを発見したときは、リソース・ファイル中にディフォルトとして記述されたキャラクタ・ストリングを表示できるようになっている。すなわち、メイン・ファイルはテキスト・ファイルのキャラクタ・ストリングを表示するように検索キーが設定されていればテキスト・ファイルのキャラクタ・ストリングを表示し、検索キーが設定されていなければリソース・ファイルのメッセージをデフォルトとして表示することができる。
【００３０】
［リソース・ファイルの構造］
リソース・ファイルはメイン・ファイルに関するグラフィックス・オブジェクトを定義する部分で、アイコン、カーソル、メニュー、ダイアログ・ボックス、および特定の言語の文字等のデータからなり、ディスプレイ上で当該プログラム専用のヒューマン・インターフェースを提供する。リソース・ファイルは主としてユーザにメッセージを提供する文字を他くの国の言語に翻訳する際の利便性を考慮して考え出されたファイルである。
【００３１】
リソース・ファイルは、プログラム言語で記述され、命令に相当するコード部分とメッセージに相当するキャラクタ・ストリング部分を含む。従来、メッセージを示すキャラクタ・ストリングを翻訳するときは、リソース・ファイルのソース・コードのうちキャラクタ・ストリングに関する部分だけを翻訳して実現することができたが、本発明ではリソース・ファイルを変更する必要はない。リソース・ファイルはメイン・ファイルからの指示を受けてディフォルトのキャラクタ・ストリングをディスプレイに表示する。
【００３２】
［実行可能ファイル］
つぎに、メイン・ファイルおよびリソース・ファイルのソース・コードをコンパイルして実行可能プログラム２１１を作成する。本実施例に係るアプリケーションは、ＧＵＩをサポートする特定のＯＳ環境下で開発されている。メイン・ファイルおよびリソース・ファイルはアプリケーションの本質的な部分だけを記述している。したがって、この二つのファイルのオブジェクト・コードだけではＧＵＩを提供しながら特定の機能を発揮するように、コンピュータ上で動作することができず、ＯＳが提供するサービスを利用する必要がある。
【００３３】
したがって、メイン・ファイルおよびリソース・ファイルのソース・コードをそれぞれコンパイルしてオブジェクト・コードを作成した後は、連係編集プログラム（リンカ）を利用して、それぞれのオブジェクト・コードを結合したり、ＯＳのライブラリ（ブロック２０５）に含まれているスタティック・リンク・ライブラリをオブジェクト・コードに組み込んだり、ダイナミック・リンク・ライブラリとリンクが可能なようにオブジェクト・コードに関連づけを行う。このようにして開発された実行可能プログラムは、開発時のＯＳ環境と同一の環境下に導入されたとき動作できるようになる。
【００３４】
ここまでの段階で特徴的なことは、このアプリケーションの実行可能プログラムはテキスト・ファイルを利用するか否かにかかわらず、ディフォルトとしてリソース・ファイルに記述したキャラクタ・ストリングを利用して実行できるということである。開発段階が終了すると、アプリケーション・プログラムはＦＤＤやＣＤ−ＲＯＭの記録媒体に記録されてパッケージとして配布されたり、コンピュータ１００の通信コネクタ１１７を利用してネットワーク経由で導入されたりする。
【００３５】
［テキスト・ファイルの構成］
本発明の特徴として、キャラクタ・ストリングをプログラムの利用段階でも容易に記述できることが挙げられる。実行可能ファイルは、ウインドウへのメッセージの表示も含めて当初のＯＳ環境のもとで完全に動作するように作成されている。しかし、リリースした後にウインドウのメッセージ部分だけを他の国の言語に翻訳する必要性が生ずる場合がある。また、リソース・ファイルに記述されているキャラクタ・ストリングは、アプリケーションの実行時にＯＳに対するメッセージとして送られる。ＯＳがアプリケーションの開発段階からバージョン・アップした場合に、たとえＯＳの言語は同一であったとしても、全角と半角の違いなどでバージョン・アップ後のＯＳ環境ではアプリケーションが正常に動作しないため、リソース・ファイルのキャラクタ・ストリングとは異なるキャラクタ・ストリングをメイン・ファイルに参照させるようにしたい場合がある。
【００３６】
テキスト・ファイルはブロック２１９で提供される。ブロック２１９は開発段階でなく、リリース後の利用段階であることは重要な意義を有する。テキスト・ファイルはプログラム・コードとは異なり、アセンブラー、コンパイラー、およびインタープリター使ってオブジェクト・コードに変換してコンピュータに実行させるものではなく、ＧＵＩへの表示またはプログラム間のメッセージとして使用するためのキャラクタ・ストリングを提供するためにテキスト・エディタで編集できるファイルである。テキスト・ファイルはＯＳの環境が許容すれば、ＡＮＳＩ（米国規格協会）が制定したＡＳＣＩＩ（Ａｍｅｒｉｃａｎ  Ｓｔａｎｄａｒｄ  Ｃｏｄｅ  ｆｏｒ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｉｎｔｅｒｃｈａｎｇｅ）、ＪＩＳ（日本工業規格）で規格化されたＪＩＳコード（ＪＩＳ  Ｘ  ０２０８）、シフトＪＩＳやＥＵＣ（ｅｘｔｅｎｄｅｄ  ｕｎｉｘ  ｃｏｄｅ）などのいかなる文字コードセットを利用してもよい。ＯＳがＷｉｎｄｏｗｓならはマイクロ・ソフト社により規定されたＩＮＩ形式のファイルを使用することができる。ＩＮＩ形式のファイルは検索に優れているからである。
【００３７】
図５は日本語（Ａ）、フランス語（Ｂ）の２種類の言語に対応したテキスト・ファイルの実施例を示す。本発明の実施例において提供するテキスト・ファイル２１９は、実行可能プログラムから検索できる検索キーを含んでいる。図５において、”ＬＤ”が検索キーで、”ＬＤ＝ＹＥＳ”は検索キーがイネーブルであることを示す。図４に示すメイン・ファイルのＢＯＯＬ  ＣＳａｍｐｌｅＤｌｇ：：ＯｎＩｎｉｔＤｉａｌｏｇを実行すると、ＧｅｔＩＮＩＳｔｒｉｎｇ関数を呼び出し、ＧｅｔＩＮＩＳｔｒｉｎｇ関数はテキスト・ファイルの検索キーを検索してイネーブルであることを検出すると、テキスト・ファイルで”ＩＤＳ＿ＳＴＲ＿・・・”と表示された各識別子がついたキャラクタ・ストリングをテキスト・ファイルから読み出してくる。
【００３８】
いま、図５（Ａ）のテキスト・ファイルの識別子をイネーブルにしておけば、アプリケーションの実行により図３（Ｂ）の日本語のキャラクタ・ストリングを含むウインドウが提供される。図５の（Ｂ）のテキスト・ファイルの識別子をイネーブルにしておけば、図３（Ｃ）に示すフランス語のキャラクタ・ストリングを含むウインドウが提供される。テキスト・ファイル２１９はプログラムの販売またはサービスに係わる技術員等（以後プログラムの最終使用者も含めてユーザという。）が作成することができる。
【００３９】
［セット・アップ］
作成されたテキスト・ファイルは実行可能プログラムから検索できるようにＨＤＤ１０５内の共通のディレクトリ領域内に格納する。さらに、好ましくは、実行可能プログラム２１１のパッケージの中にディレクトリの関連付けを行った何も記述していないテキスト・ファイルを用意しておく。実行可能プログラムのパッケージには通常コンピュータへのプログラムの導入を補助するセット・アップ・プログラム（ブロック２１７）を含んでいる。
【００４０】
セット・アップ・プログラムを使ってプログラムの導入をする際、セット・アップ・プログラムからメッセージ部分を他の国の言語へ翻訳する必要があるかどうか、バージョン・アップしたＯＳ対応のために変更する必要があるかどうかの問い合わせをし、ユーザはその指示にしたがって、翻訳または変更したメッセージをテキスト・ファイルに書き込んでいく。この結果、ユーザはテキスト・ファイルのディレクトリを選択する作業や、不必要な部分まで翻訳してプログラムの動作に影響を与えるトラブルから解放される。
【００４１】
ここまでの説明で明らかになったことは、アプリケーションのＧＵＩに対するメッセージや動作に関連するキャラクタ・ストリングを翻訳、変更する作業が、開発者のもとで行われるソース・コードの修正を伴わないことである。テキスト・ファイルの編集者は、検索キーと識別子とキャラクタ・ストリングを記述するのみで実行可能ファイルもソース・プログラムも何ら変更する必要がない。
【００４２】
［ＨＤＤへの格納］
実行可能プログラム２１５をコンピュータで動作できるようにするために、セット・アップ・プログラムはアプリケーションをＨＤＤ１０５に格納する（ブロック２２１）際に、格納場所の確定、起動条件の設定、作業ファイルがある場合はそのメモリ領域の確定、リンクするライブラリがある場合はリンク条件の設定などを行う。以上までの手順により、アプリケーションをコンピュータ１００において実行する準備が完了した。
【００４３】
図６は、アプリケーションを実行するときの手順を記述したフローチャートの実施例である。ＧＵＩ環境では、プログラムの起動を示すコマンドはアイコン形式でディスプレイ１０７上に提供され、ユーザは、マウス１１５を操作して起動コマンドを実行する（ブロック３０１）。プログラムが起動されると実行可能プログラムはメイン・メモリに読み込まれる（ブロック３０３）。このとき実行可能プログラムの一部だけメイン・メモリに読み込んでもよい。たとえば、リソース・ファイル部分はＨＤＤに残しておき、メイン・ファイル部分からのコールがあったときだけメイン・メモリに必要な部分だけを転送し実行されるようにしてもよい。ダイナミック・リンク・ライブラリは実行可能プログラムからコールされたときだけメイン・メモリに読み込まれて実行される。
【００４４】
実行可能プログラムのメイン・ファイル部分は適宜リソース・ファイル部分を呼び出してＧＵＩ環境を提供しながら、所定の機能を実行していく。リソース・ファイル部分は主としてディスプレイの表示に係わる部分を定義している。さらにメイン・ファイル部分はテキスト・ファイルに記述された検索キーを検索する（ブロック３０７）。検索キーは、リソース・ファイルに当初から埋め込んであるキャラクタ・ストリングを利用するか、テキスト・ファイルに記述したキャラクタ・ストリングで置き換えるかを制御する。
【００４５】
ブロック３０９で検索キーがイネーブルのときは、当該テキスト・ファイルのキャラクタ・ストリングをメイン・メモリに読み出して、ディスプレイ１０７に表示したり、ＯＳへメッセージとして送る。ブロック３０９で検索キーがディスエーブルのときは、メイン・ファイルはリソース・ファイルのキャラクタ・ストリングをメイン・メモリに読み出してディスプレイ１０７に表示したり、ＯＳへメッセージとして送る。テキスト・ファイルから読み出したキャラクタ・ストリングは、メイン・ファイルからみたときリソース・ファイルのキャラクタ・ストリングを置き換えたのと同様の機能を発揮する。したがって、テキスト・ファイルのキャラクタ・ストリングは、単にメッセージとして翻訳された言語で表示されるという側面だけでなく、メイン・ファイルとＯＳとの間でメッセージ交換するときのキャラクタ・ストリングの形式上の整合を図って動作上の支障を生じさせないという側面も兼ね備える。
【００４６】
本実施例では、アプリケーションをメイン・ファイルとリソース・ファイルとに分けているが、ＧＵＩの定義もすべてメイン・ファイル内に記述してリソース・ファイルを使用しない場合でも同様の手法でテキスト・ファイルを作成することができる。また、テキスト・ファイルはテキスト・エディタでキャラクタ・ストリングを表示できるすべてのファイルを含む。
【００４７】
【発明の効果】
本発明により、リリース後に修正の容易なコンピュータ・プログラムの作成方法、プログラム構造、および記憶媒体を提供することができた。さらにまた、本発明により、ソース・プログラムを修正しないで、ＧＵＩのメッセージや動作に関連するキャラクタ・ストリングを修正できるコンピュータ・プログラムの作成方法、プログラム構造、および記憶媒体を提供することができた。
【００４８】
さらに本発明により、キャラクタ・ストリングの表示を含むＧＵＩ環境を提供するコンピュータ・プログラムにおいて、言語環境の変更またはプログラムの動作環境の変化に対応するために、キャラクタ・ストリングの修正を容易に行えるコンピュータ・プログラムの作成方法、プログラム構造、記憶媒体を提供できた。このことは、プログラムをリリースした後にアプリケーションのＧＵＩがサポートしなければならない言語が増加した場合であっても、翻訳したメッセージを含むソース・コードを追加しなくてもよいという面でも有益である。
【図面の簡単な説明】
【図１】本発明の実施例に係るアプリケーションを実行するコンピュータの概略ブロック図である。
【図２】本発明の実施例に係るアプリケーションの作成方法を示すフローチャートである。
【図３】本発明の実施例に係るアプリケーションがディスプレイに提供するＧＵＩを示す図である。
【図４】本発明の実施例に係るアプリケーションのソース・コードを示す図である。
【図５】本発明の実施例に係るテキスト・ファイルを示す図である。
【図６】本発明の実施例に係るアプリケーションを実行するときの手順を示したフローチャートである。
【図１】
0003579823.tif 000002
【図２】
0003579823.tif 000003
【図３】
0003579823.tif 000004
【図４】
0003579823.tif 000005
【図５】
0003579823.tif 000006
【図６】
0003579823.tif 000007