(57)【要約】【解決手段】リソース名及びデフォルト値を有する呼び出しを生成するアプリケーションを含むコンピュータが提供されている。リソースマネージャは、ローカライズリソースファイル内のエントリとリソース名とを比較する。ローカライズリソースファイルがリソース名を含まない場合、リソースマネージャラッパーは、リソースファイルへリソース名を追加する。リソースマネージャラッパーはその後、エンドユーザへの提示のために使用されるようにアプリケーションへ戻り値を送信する。【選択図】図１
2008529160.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアを有するコンピュータシステム（１００）（３００）であって、
リソース名及びデフォルト値を有する呼び出し（１４０）を生成するアプリケーション（１２０）と、
ローカライズリソースファイル（１７５）内のエントリと前記リソース名とを比較するリソースマネージャ（１６０）と、
前記ローカライズリソースファイル（１７５）が前記リソース名を含んでいない場合、前記リソース名をリソースファイル（１７０）へ書き込むリソースマネージャラッパー（１５０）とを含むことを特徴とする前記コンピュータシステム。
【請求項２】
前記リソースマネージャラッパー（１５０）が前記アプリケーション（１２０）へ前記リソース名に関連する戻り値（１８０）を送信することを特徴とする請求項１記載のコンピュータシステム（１００）（３００）。
【請求項３】
さらに前記戻り値の機能の情報を提示するインタフェース（３０５）を含むことを特徴とする請求項２記載のコンピュータシステム（１００）（３００）。
【請求項４】
前記リソース名が前記ローカライズリソースファイル（１７５）内に見つからなかった場合、前記戻り値（１８０）は、前記デフォルト値であることを特徴とする請求項２記載のコンピュータシステム（１００）、（３００）。
【請求項５】
前記リソース名がローカライズリソースファイル（１７５）内に見つかった場合、前記戻り値（１８０）は、前記ローカライズリソースファイル（１７５）から読み出されたローカライゼーション値であることを特徴とする請求項３記載のコンピュータシステム（１００）（３００）。
【請求項６】
さらに前記アプリケーション（１２０）へ前記リソース名及びデフォルト値を提供するデータベース（３１１）を含むことを特徴とする請求項１記載のコンピュータシステム（１００）（３００）。
【請求項７】
前記呼び出し（１４０）が、アプリケーションプログラミングインタフェース（ＡＰＩ）からなることを特徴とする請求項６記載のコンピュータシステム（１００）（３００）。
【請求項８】
関連するリソース名及び関連するデフォルト値を有する呼び出し（１４０）の受信（２１０）と、前記リソース名がローカライズリソースファイル（１７５）内に定義されているかどうかの判定（２２０）とを含む方法（２００）であって、
前記リソース名が、前記ローカライズリソースファイル（１７５）内に定義されている場合、前記ローカライズリソースファイル（１７５）から対応するリソース値を取得（２３０）し、
前記リソース名が、前記ローカライズリソースファイル（１７５）内に定義されていない場合、リソースファイル（１７０）内への前記リソース名を追加（２４０）し、前記リソースファイル（１７０）内への前記リソース名に関連する値としての前記デフォルト値を追加（２４０）することを特徴とする前記方法。
【請求項９】
さらに前記リソースに関連する戻り値（１８０）の伝達（２５０）（２６０）を含むことを特徴とする請求項８記載の方法。
【請求項１０】
前記リソース名が前記ローカライズリソースファイル（１７５）内に見つからなかった場合、前記戻り値（１８０）は、前記デフォルト値であることを特徴とする請求項９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータシステムに関連し、さらに詳細には第１のヒューマン言語から第２のヒューマン言語へのコマンドを変換することに関する。
【背景技術】
【０００２】
従来技術において、コンピュータは、リソース（ｒｅｓｏｕｒｃｅ）ファイルを使用する。リソースは、書体、コンピュータのアイコン、又は事前定義のフォーマットというような、情報の表示に対してあらかじめ定義されたアプローチに一般的に対応する。リソースファイル内部に定義されるリソース定義をベースとするアプリケーションに対して、リソースファイルは、そのアプリケーションのコードの中を修正しないでアプリケーションの外見を調整することを可能にする一方法である。例えば、リソースはドロップダウンメニューであり得る。そのリソースを識別するために使用可能なリソース名は、「メニュー」であり得る。
【０００３】
リソースは、対応するインデックス番号を持つことができる。従来技術のシステムの中には、リソースファイルは、インデックス番号を含んでいるがリソース名自身は含んでいないものもある。その代わりとしてインデックス番号が、所与のリソース、つまりリソース名に対応している。例えば、「total amount」というリソース名は、３５というインデックス番号を持つことができ、「シフト」キーのための「シフト」というラベルに対するリソース名は、３６というインデックス番号を持つことができる。
【０００４】
さらに、各インデックスは、リソースファイル内部に定義されるインデックス自身に関連した値を持つ。値は、リソースによって使用される文字列、又はコマンドとして、一般に定義することができる。アプリケーションのコーディングの中で、例えば、インデックス番号「３５」がアプリケーションの中で使用されるときは、いつでもそのアプリケーションは、値（又は文字列）「total amount」に置き換えることができる。しかしながら「total amount」が、「total amount」という値を持ち、シフトキーのリソース名が「shift」という値を持つこともできる。
【０００５】
しかし、英語が典型的に選択されるソースコードのコンピュータ言語なので、英語以外の話者に対してアプリケーションを適応しようとする際に、インデックスの使用には、問題が発生する。例えば、フランス語のインタフェースをプログラムする場合、ソースファイル内部でフランス語の話者に対して適切であるように、対応するフランス語の値へそのターム「３５」をどのように翻訳するのか？。それぞれ特有の短所を有するアプローチがいくつかある。
【０００６】
例えば、すべての言語のための単一のソースファイル内部に単語がインデックス付けされる場合、インデックス番号が不足することがあった。例えば、１０００が英語リソースのためのベースアドレスとして、かつ２０００がフランス語リソースのためのベースアドレスとして使用されると仮定し、そのインデックスは、１つずつ増加される。したがって、スロット１〜１０００は、英語に対応し、スロット１００１〜２０００は、フランス語に対応する。関心が１０００個のリソースを超える場合、英語、又はフランス語のリソースは、１つのピースを定義するリソースを１０００個しか持つことができないので、新しいリソースを含むことができない。
【０００７】
言語、又は文化のような地域的条件に対応する値を有するリソースファイルとして、ローカライズリソースファイル（ｌｏｃａｌｉｚｅｄ  ｒｅｓｏｕｒｃｅ  ｆｉｌｅ）を一般に定義することができる。単一のソースファイル内部のベースアドレスの代わりに、地域の言語、及び文化を機能させるものとして、一連の分離したローカライズリソースファイルの中から選択された１つのものをアクセスするように、アプリケーションがプログラムされていた場合、単語の英語の意味と外国語の翻訳との間でしばしば食い違いが起こる。例えば、インデックス３６（シフトのリソース）に関して、インデックス３６は、シフトキー、又はその代替として、工場内である期間働いている雇用者集団を指し得る。そのローカライズリソースファイル内部へ値を入力する際、リソース名「shift」のそれぞれの意味が異なる訳を有することになる。
【０００８】
そのため従来技術において、アプリケーション内でインデックス番号を呼び出す代わりに、リソース名がその代替で呼ばれた。例えば、リソース名「total value」が、アプリケーション内部で呼ばれ得る。その後、どの対応する値がそのリソース名に当るか定義するために、リソースファイルが用いられる。そのとき対応している値は、英語の文字列「total value」として定義されたものである。しかし、フィンランド語でその代わりに対応している値は、
【０００９】
【数１】
2008529160.tif 000003
【００１０】
であり、又は外国語においては、他の幾つかの値となる。しかしながらリソース名の使用は、外国の翻訳者が、インデックス番号に対して、英語の用語によって意味するものを追従することをいくらかでも容易にさせた。
【００１１】
しかし、選択されたリソースファイル内部で定義されていないリソース名がエンドユーザによって要求された場合、そのアプリケーションは、しばしばハングアップ、クラッシュ、アボート、又はそうでなければ好ましくない方法で振舞う。さらにデータ駆動型アプリケーションのようなカスタマ独立のコードが一般的方法で開発され、アプリケーションデータベース内にすべてのカスタマデータがストアされるようないくつかの種類のアプリケーションでは、クラッシュの可能性が特に増大する。
【００１２】
さらにあるアプリケーションにおいて、一般のセンサディスプレイで使用されるセンサの名前のようなリソースが与えられる名前は、アプリケーションを記述している間は既知ではない。例えば、「moisture」と名づけられたセンサがアプリケーションデータベースに追加されていて、かつ「moisture」というリソース名がリソースファイル内部には定義されていない場合、アプリケーションがリソース名「moisture」にアクセスを試みるとき、そのシステムは、好ましくない方法で振舞うであろう。
【００１３】
これは、英語以外のリソース名を有するリソースによってさらに悪化する。例えば、リソースが
【００１４】
【数２】
2008529160.tif 000004
【００１５】
というリソース名を伴ってシステムに追加されるとする。しかし、おそらく
【００１６】
【数３】
2008529160.tif 000005
【００１７】
は、そのリソースファイル内に定義されていない。これは、それがこのリソース名によって意味するものが何かを見出すことが困難であるように、リソース名に関して対応する値と文化的に等価な類似物（ａｎａｌｏｇｕｅｓ）の開発をしようとする時に特に困難とされる。
【００１８】
さらに手動で（すなわち、リアルタイムではなく開発者によって）リソースファイルを更新しなければならないことが問題である。問題の部分は、そのリソース名がアプリケーションコード、及びリソースファイル内に独立して入力される際にスペルミスがあり得ることである。別の問題の部分は、特にデータ駆動型アプリケーションにおいて、そのアプリケーションがすでにリリースされた後で、要求されるリソース名の数が増加し得ることである。しかし、リソースファイルにリソース名を追加するための高速、かつ便利な方法はないであろう。
【００１９】
慣用句（ｐｈｒａｓｅ）、及び同音異義語といった文脈に敏感な翻訳に対応するために、その翻訳中に使用されるべきディスプレイ名、又はアプリケーションフォーム（言い換えるとその値）のようなコンテキストを識別するためにアプリケーションに必要とされるものがある。リソース名に対応するローカル言語用の値を生成するためのローカライゼーションプロセスにおいて、同じ慣用句及び同音異義語の翻訳は、ローカライゼーションの努力を減ずること、及び翻訳の一貫性を改善するという並行の処理にとって有効であるべきである。したがって、リソースファイル管理及びローカライズリソースファイル管理が必要とされている。
【発明の開示】
【課題を解決するための手段】
【００２０】
コンピュータシステムが提供される。アプリケーションは、リソース名及びデフォルト値を有する呼び出しを生成する。リソースマネージャは、第１のリソースファイル内のエントリをリソース名と比較する。第１のリソースファイルがリソース名を含まない場合、リソースマネージャラッパーは、第２のリソースファイルにそのリソース名を書き込む。リソースマネージャラッパーは、前記リソース名に関連する戻り値をアプリケーションへ送信する。インタフェースは、前記戻り値の機能としての情報を提示する。前記リソース名が前記第１のリソースファイル内に見つからなかった場合、戻り値はデフォルト値である。前記リソース名が前記第１のリソースファイル内に見つかった場合、戻り値は、第１のリソースファイルから読まれたローカライゼーション値である。データベースは、リソース名及びデフォルト値をアプリケーションへ提供する。呼び出しは、アプリケーションプログラミングインタフェース（ＡＰＩ）呼び出しからなる。デフォルト値は第１のヒューマン言語に対応する。第１のヒューマン言語は、英語、スペイン語、フィンランド語、標準中国語及びドイツ語を含むグループから選択される。ローカライゼーションツールは、ローカライゼーション値を生成する。ローカライゼーション値は、第２のヒューマン言語に対応する。ローカライゼーションツールは、前記第１のリソースファイルへ前記ローカライゼーション値を入力する。第１のリソースファイルは、ローカライズファイルである。
【００２１】
方法が提供される。関連するリソース名及び関連するデフォルト値を有する呼び出しが、受信される。リソース名が第１のリソースファイル内に定義されているかどうか判定される。リソース名が第１のリソースファイル内に定義されている場合、前記第１のリソースファイルから対応しているリソース値が、その後、取得される。リソース名が前記ローカライズファイル内に定義されていない場合、リソース名が第２のリソースファイル内に書き込まれる。そのデフォルト値は、第２のファイル内に前記リソース名に関連する値として書き込まれる。前記リソース名に関連する戻り値が送信される。前記リソース名が前記第１のリソースファイル内に見つからなかった場合、戻り値はデフォルト値である。リソース名が前記第１のリソースファイル内に見つかった場合、戻り値は、第１のリソースファイルから読まれたローカライゼーション値である。デフォルト値は、第１のヒューマン言語に対応する。第１のヒューマン言語は、開発者の言語に対応する。ローカライゼーション値は、第２のヒューマン言語に対応する。第２のヒューマン言語は、ユーザの言語に対応する。呼び出しは、ＡＰＩ呼び出しである。リソース名は、動的リソース名である。
【００２２】
コンピュータストレージメディアが提供される。関連したリソース名及び関連したデフォルト値を有する呼び出しが、受信される。リソース名が第１のリソースファイル内で定義されているかどうか判定される。リソース名が第１のリソースファイル内で定義されている場合、前記第１のリソースファイルから対応しているリソース値が取得される。リソース名が第１のリソースファイル内で定義されていない場合、リソース名が第２のリソースファイル内に書き込まれ、第２のリソースファイル内のそのリソース名のために、対応するデフォルト値としてデフォルト値を書く。
【発明を実施するための最良の形態】
【００２３】
ここでは「モジュール」という用語は、スタンドアロンのコンポーネント、又は統合化された部品の複数コンポーネントの中の１つのうち、いずれの実施形態でもよい機能的オペレーションと定めて使用されている。
【００２４】
図１中に、コンピュータソフトウェアシステム（以下「システム」）（１００）を図的に例示する。システム（１００）は、アプリケーション（１２０）を有している。システム（１００）は、ソフトウェアモジュールとして例示しているが、アプリケーション（１２０）は、関連するカスタマデータベースにアクセスし、その結果はユーザインタフェース上で表示される。
【００２５】
システム（１００）において、静的リソース名、すなわち異なる言語フォーマットの間で差異のない非ローカライズの名前が、アプリケーション（１２０）のソースコード中に組み込まれている。ユーザインタフェース上でローカライズされた表示とともに使用される動的リソース名、及び静的リソース名内部に、関連するカスタマデータベースがストアされている。動的リソース名は、アプリケーション（１２０）が作られたとき、未知のリソース名として定義されてもよい。動的リソース名は、カスタマデータベース又は他の同様な外部ソースから得ることが出来る。静的リソース名は、アプリケーション（１２０）が作られたとき、プログラマによって既知のリソース名として一般に定義されてもよい。静的定義は、アプリケーション（１２０）の開発時間の間、定義される静的名前なので、リソースファイル内で取り扱い得るが、動的リソース名は、エンドユーザに対するユーザインタフェース上に現在のデータ、又はグラフィックスを適切に表示しなければならない。
【００２６】
ユーザインタフェースは、興味のある項目を表示、又は提示できるようにリソースに要求する。アプリケーション（１２０）は、カスタマデータベースから動的リソース名、又はアプリケーション（１２０）のソースコードから静的リソース名のいずれか、又はその双方を得ることが可能である。静的及び動的リソース名の双方ともエンドユーザデータベース、又はアプリケーション（１２０）の内部で定義されるが、動的名前のようなリソース名は、リソースファイル内では更新されないかもしれない。しかし、動的、又は静的のいずれであっても、リソースは、ユーザインタフェースにとって適切な文化的、又は言語的形式で与えなければならない。
【００２７】
従ってユーザインタフェース（１３０）へのリソース表示に使用されるより適切な値があるかどうかを判定するために、アプリケーション（１２０）が、アプリケーションプログラミングインタフェース（ＡＰＩ）呼び出し（１４０）を生成する。ＡＰＩ呼び出し（１４０）及びリソースマネージャラッパー（１５０）を結合している双方向矢印によって示すように、ＡＰＩ呼び出し（１４０）は、アプリケーション（１２０）から発し、リソースマネージャラッパー（１５０）を呼び出す。後述するように、リソースマネージャラッパー（１５０）は、リソースマネージャ（１６０）を動作させるモジュール、プログラム、又はスクリプトとして一般に定義することができる。
【００２８】
またＡＰＩ呼び出し（１４０）は、戻り値（１８０）も有する。戻り値（１８０）は、ユーザインタフェースを通してリソースを表示するとき、使用される値である。例えば、リソース名が「total value」の場合、その戻り値は
【００２９】
【数４】
2008529160.tif 000006
【００３０】
であり、これは、ユーザインタフェース上の「total value」に対応するリソース名を表示するとき使用される値である。
ＡＰＩ呼び出し（１４０）のデフォルト値は、２つの目的のために使用される。第１に、リソース名がローカライズリソースファイル（１７５）内に見つからなかった場合、リソースマネージャラッパー（１５０）によって、デフォルト値が戻り値（１８０）に複製される。例えば、リソース名が「poisonous liquid」の場合、ＡＰＩ呼び出し（１４０）内のデフォルト値は、「day-glow green」という色であり得る。従って、ローカライズリソースファイル（１７５）と共にローカライズ値が存在しない場合、「day-glow green」は、ユーザインタフェースにおいて色が選択される際に使用される値となる。第２に、リソース名がリソースファイル（１７０）内に前もって記録されていない場合、ＡＰＩ呼び出し（１４０）のデフォルト値が、ＡＰＩ呼び出し（１４０）のリソース名と共にリソースファイル（１７０）内に記録される。
【００３１】
リソースマネージャラッパー（１５０）は、ＡＰＩ呼び出し（１４０）から情報を受信する。リソースマネージャラッパー（１５０）は、オブジェクト指向プログラミングに対応するクラスであり、ＡＰＩ呼び出し（１４０）は、クラスのメソッドであり得る。リソースマネージャ（１６０）は、リソース名がローカライズリソースファイル（１７５）内部で定義されているかどうかをローカライズリソースファイル（１７５）に問い合わせする。リソースマネージャ（１６０）は、モジュール、スクリプト又はコードのようなもの、インデックス付け、体系化として一般に定義され、ローカライズリソースファイル（１７５）へのアクセスリクエストを実行することができる。ローカライズリソースファイル（１７５）は、様々なリソース名、及びそのリソース名に対応するローカライズされた（すなわち、デフォルト値ではない）値を一般に含む。ローカライズリソースファイル（１７５）へのデフォルト値ではない名前の入力方法を後述する。
【００３２】
ローカライズリソースファイル（１７５）がその内部にストアされたリソース名を持つ場合、ローカライズリソースファイル（１７５）は、リソースマネージャ（１６０）にそれを知らせる。さらにローカライズリソースファイル（１７５）は、リソースマネージャ（１６０）へ関連するローカライゼーション値を返す。
【００３３】
しかしながら、ローカライズリソースファイル（１７５）内部にリソース名が見つからない場合、リソースマネージャラッパー（１５０）は、リソースファイル（１７０）へリソース名、及び受信したデフォルト値を書き込む。言い換えると、システム（１００）は、動的にそのリソースファイル（１７０）を更新することができる。例えば、ローカライズリソースファイル（１７５）が、「ｓｔｒｅｓｓ  ｏｖｅｒｌｏａｄ」というリソース名を有していない場合、リソースマネージャラッパー（１５０）は、リソースファイル（１７０）へリソース名「ｓｔｒｅｓｓ  ｏｖｅｒｌｏａｄ」を書き込む。さらに、リソースマネージャラッパーは、リソースファイル（１７０）へ対応するデフォルト値を書き込む。
【００３４】
リソースファイル（１７０）が、まだローカライズされていないリソース名、及びデフォルト値を収集するために使用されるので、リソースファイル（１７０）への値の書き込みは、コンピュータがクラッシュするのを避けるための助けとなる。リソース名の自動保存は、アプリケーション（１２０）コードの中に組み込まれた静的リソース名、及びカスタマデータベース、又はカスタマデータベースが表現している外界（ｅｘｔｅｒｎａｌ  ｗｏｒｌｄ）内に組み込まれた動的名前の双方をカバーする。クラッシュ発生の可能性は、アプリケーション（１２０）へ戻り値（１８０）を送信することによって減少する。リソース名の収集の自動化を通して、リソース名のスペルミスが訂正される。
【００３５】
外界の例として、サードパーティーベンダーのシステムから発生する英語の警告メッセージがある。リソースファイル（１７０）内でそのアラームメッセージを捕獲することによって、そのアラームメッセージは、ローカライズリソースファイル（１７５）内のローカル言語に翻訳され得、その後ユーザインタフェース上の表示において使用可能である。しかし、そのデフォルト値は、リソースファイル（１７０）から直接ローカライズリソースファイル（１７５）へ渡ることはできない。実際の翻訳、及び他のローカライゼーション行為を実行するのに人間の介在が要求される。
【００３６】
リソースファイル（１７０）は、ローカライゼーションツール（１７２）の援助で見ることができ、内容は、複製され、変更され、ローカライズリソースファイル（１７５）内にストアすることが可能である。ローカライゼーションツール（１７２）を用いて、リソースファイル（１７０）内部のリソース名が、ＡＰＩ呼び出し（１４０）から受信の際適切でないデフォルト値を有しているか、及びユーザインタフェースのエンドユーザのために翻訳される言語においてリソース名が、より正しい対応する値を持つべきであるかをオペレ―タ、又はプログラマが判定することができる。
【００３７】
ローカライゼーションツール（１７２）は、リソースファイル（１７０）からリソース名、及びデフォルト値を複製する。その後、ローカライゼーションツール（１７２）は、そのリソース名に対応するための適切なローカライゼーション値を生成するために使用される。一般的に、ローカライゼーション値は、文化的及び言語的に適切な方法でユーザインタフェース（１３０）でリソースを表現するために使用される値である。例えば、「poisonous liquid」というリソース名について、「day-glow green」というデフォルト値の代わりに、「burnt umber」という対応するローカライズ値が生成され得る。ローカライゼーション値、及びリソース値は、その後、ローカライズリソース（１７５）の中にストアされる。言い換えると、リソースファイル（１７０）は、まだローカライズリソースファイル（１７５）中に含まれていないようなリソースを捕獲するためだけに使用される。
【００３８】
ローカライズリソース内部のローカライズリソースファイル（１７５）は、１）言語、及び２）アプリケーションエリアという２つの基準によって組織化することができる。言語は、文化、地理的エリア、又は地域的慣行によって明確にすることができる。アプリケーションエリアは、アプリケーションの一部分、アプリケーション向けの特有のもの、又は複数のアプリケーションのよって共有され得るものがある。アプリケーションエリアは、ディスプレイ、又はレポートのような独立した部分を有するアプリケーションとして一般に定義することができる。コンピュータは、同じ翻訳物を共有することを必要とする本質的に独立のアプリケーションに対応可能である。言語／文化の選択は、アプリケーションエリアとは独立であり得る。
【００３９】
ローカライズリソース（１７５）内部に定義されたリソース名が存在しない場合、ＡＰＩ呼び出し（１４０）からのデフォルト値（１４０）が戻り値（１８０）になる。リソースがローカライズリソースファイル（１７５）内に見つかった場合、対応するローカライゼーション値が戻り値（１８０）となる。その後、ＡＰＩ呼び出し（１４０）は、リソース名、及び戻り値（１８０）をアプリケーション（１２０）へ返す。アプリケーション（１２０）は、戻り値（１８０）を解釈し、エンドユーザへの表示用にユーザインタフェース（１３０）の中でそれを使用する。
【００４０】
ローカライゼーションツール（１７２）は、ローカライズリソースファイル（１７５）内部のストレージ用にローカライゼーション値を生成するために使用される。例えば、フィンランド語の話者のために生成されるローカライズリソースファイル（１７５）において、ローカライゼーションツール（１７２）は、「ylipaine」（「stress overload」のフィンランド語）という対応するローカライズ値と共に、リソース名「stress overload」を書きこむ。リソース名のフィンランド語のローカライズ値がローカライズリソースファイル（１７５）へ書かれる前に、ユーザインタフェース（１３０）は、そのデフォルト値である文字列「stress overload」を表示する。この「stress overload」という値は、戻り値（１８０）である。フィンランド語の翻訳が、ローカライズ値としてフィンランド語の話者のためにローカライズリソースファイル（１７５）中で有効になった後で、「ylipaine」という戻り値（１８０）は、ユーザインタフェース（１３０）中に表示される。ローカライズリソース（１７５）内部で使用される代替可能な言語は、例えば、英語、スペイン語、フィンランド語、標準中国語、又はドイツ語である。その値は、単語、慣用句、及びテキストに限定されず、色、アイコン、絵、音、及び映像のようなすべての文化及び言語特有のユーザインタフェースの項目に関して使用することができる。この例においては、リソース名「ｓｔｒｅｓｓ  ｏｖｅｒｌｏａｄ」がアプリケーションコードの中で、「デフォルト値」としても使用される。
【００４１】
ローカライズリソースファイル（１７５）の内部には、言語及び地理的エリアに関する階層的構造がある。地理的エリアに関する階層的構造は、同様の環境で同じ言語に対応する翻訳の労力を削減する現実的な方法である。これは、マイクロソフトリソースマネージャのようなリソースマネージャ（１６０）によって対応されている概念である。
【００４２】
例えば、標準のドイツ語、及び特にスイスで話されるドイツ語のための翻訳があり得る。ドイツ語のスイス特有の方言がローカライズリソースファイル（１７５）内部で見つからなかった場合、一般のドイツ語の翻訳が使用される。ドイツ語の翻訳がない場合、アプリケーション（１２０）内の特定のデフォルト値が使用される。
【００４３】
アプリケーション（１２０）がＡＰＩ呼び出し（１４０）を生成する場合、アプリケーションエリアに対応する初期化を実行し、使用するターゲット言語、及び／又は文化的エリアが指示される。アプリケーション（１２０）を再始動せずに、即座の言語変更に対応するためのＡＰＩ呼び出し（１４０）の初期化の後、言語は、例えば英語からフィンランド語というように、変更可能である。これは、個別の言語のために適切にローカライズされた値を有している、ローカライズリソースファイル（１７５）内部の異なるファイルを選択することによって発生させることができる。
【００４４】
アプリケーション（１２０）は、初期化の間、ターゲット言語を指示することによって、ＡＰＩ呼び出し（１４０）を使用することができる。この場合、言語選択は静的である。言語が指示されない場合、オペレーティングシステム、又はアプリケーション管理の中で現在選択されている言語が使用される。リソースマネージャラッパー（１５０）は、オペレーティングシステム、又はアプリケーション管理の中の言語の変更を検知することが可能である。その変更後、リソースマネージャラッパー（１５０）は、リソースマネージャ（１６０）の中の言語選択を明示的に変更する。この特徴により、アプリケーション（１２０）の開発者は、動的な言語の変更に対応するためのコードを全く記述する必要がない。
【００４５】
図２は、リソースファイルの使用及び更新のための流れ図（２００）を例示している。開始ステップ（２０５）後、ステップ（２１０）でリソースマネージャラッパー（１５０）が、ＡＰＩ呼び出し（１４０）によって活性化される。ＡＰＩ呼び出し（１４０）は、リソース名及び対応するデフォルト値を有している。ステップ（２２０）において、リソース名がローカライズリソースファイル（１７５）内部で定義されているかどうか判定される。定義されている場合、その対応しているローカライズ値がローカライズリソースファイル（１７５）から返される。ステップ（２５０）において、ローカライズ値が、戻り値（１８０）の使用を通してアプリケーション（１２０）へ複製され、メソッド（２００）が、ステップ（２７０）内で終了する。
【００４６】
しかし、ステップ（２２０）において、リソース名がローカライズリソースファイル（１７５）中に存在しないと判定された場合、リソースマネージャラッパー（１５０）が、そのリソース名、及びデフォルト値をリソースファイル（１７０）へ追加する。ステップ（２６０）において、デフォルト値の複製が、戻り値（１８０）を通してアプリケーション（１２０）へ返され、メソッド（２００）が、ステップ（２７０）内で終了する。
【００４７】
図３を参照してここで例示されたものは、方法（２００）に従ってリソースファイル（１７０）を動的に更新するために適合したコンピュータシステム（３００）のブロック図である。コンピュータシステム（３００）は、ユーザインタフェース（３０５）、メモリ（３３０）、ストレージメディア（３４０）、ネットワーク（３５０）、開発者コンピュータ（３５１）及び翻訳用コンピュータ（３５２）を結合したユーザコンピュータ（３１０）を含む。メモリ（３３０）は、ユーザコンピュータ（３１０）上でアプリケーション（１２０）を実行するために使用される。
【００４８】
メモリ（３３０）は、アプリケーション（１２０）、リソースマネージャラッパー（１５０）、及びリソースマネージャ（１６０）を含む。アプリケーション（１２０）、リソースマネージャラッパー（１５０）、及びリソースマネージャ（１６０）は、当初、開発者コンピュータ（３５１）の中でコード化されている。使用されるリソース名は、アプリケーション（１２０）のコードの中に組み込まれるか、又はアプリケーション（１２０）がカスタマデータベース（１１０）、又は別の外部ロケーションからそのリソース名を取得する。
【００４９】
ストレージメディア（３４０）は、カスタマデータベース（１１０）、リソースファイル（１７０）、及びローカライズリソース（１７５）を含む。アプリケーション（１２０）が実行されるとき、ストレージメディア（３４０）中の項目は、メモリ（３３０）中に一部、又は完全にロードすることができる。カスタマデータベース（１１０）は、当初コード化され、開発者コンピュータ（３５１）から入力されたデータを有しており、さらにユーザコンピュータ（３１０）の中で修正、及び更新することが可能である。
【００５０】
ローカライズ値が文化的コンテキスト、及び／又は選択された言語に対するリソース名とマッチするかどうかを判定するために、アプリケーション（１２０）は、リソースマネージャラッパー（１５０）を使用する。リソースマネージャラッパー（１５０）は、ローカライズリソース（１７５）内にストアされた情報をベースとした実際の情報検索のために、リソースマネージャ（１６０）を使用する。ローカライゼーション値が見つかった場合、この値は、リソースマネージャ（１５０）により、戻り値（１８０）としてアプリケーション（１２０）へ返される。
【００５１】
リソース名がローカライズリソースファイル（１７５）内で選択された言語、及び文化的コンテキスト向けに特定されない（すなわち、そのリソース名に対応するローカライズ値がない）場合、アプリケーション（１２０）のＡＰＩ呼び出し（１４０）によって特定されたデフォルト値が、戻り値（１８０）として複製され、リソース名及びデフォルト値がリソースファイル（１７０）内にストアされる。その後、戻り値（１８０）は、ユーザインタフェース（１３０）上の表示においてアプリケーション（１２０）によって使用される。
【００５２】
開発、テスト、製造、又は他の期間を通して、アプリケーション（１２０）を実行した後に、新規リソース名及びデフォルト値のすべてがリソースファイル（１７０）内にストアされる。その後、新規リソース名、及びデフォルト値が翻訳用コンピュータ（３５２）へダウンロードされる。ローカライゼーションツール（１７２）は、リソースファイル（１７０）内で見つけられた新規リソースに関する各種の言語、及び文化向けのローカライズ値を生成するために翻訳用コンピュータ（３５２）によって使用される。これらのローカライズ値、及び対応するリソース名は、ユーザインタフェース（１３０）と結合して使用されるすべての言語及び文化向けのローカライズリソースファイル（１７５）へと入力される。ユーザインタフェース（１３０）は、モニタスクリーン（３２１）のウィンドウ上、及びレポートプリンタ（３２２）上、又はスピーカのような他のマン―マシン出力装置上へ取り出されるローカライズ値を表現する。
【００５３】
ここで説明した教示のさまざまな代替、組み合わせ、及び修正がこの分野の技術を有する人によって考案され得ることは理解されよう。本発明は、本発明の請求範囲内に収まるこのような代替物、修正物及び変形物すべてを包含することを意図している。
【図面の簡単な説明】
【００５４】
【図１】インタフェース用の戻り値を生成するためのソフトウェアシステムを例示している。
【図２】リソースファイルを動的に更新するための方法を例示している。
【図３】リソースファイルを動的に更新するためのコンピュータシステムを例示している。
【図１】
2008529160.tif 000007
【図２】
2008529160.tif 000008
【図３】
2008529160.tif 000009
【国際調査報告】
2008529160.tif 000010
2008529160.tif 000011
2008529160.tif 000012