(57)【要約】      （修正有）【課題】翻訳テキストの自動的な発見のためのシステム及び方法を提供する。【解決手段】ユーザインタフェース（ＵＩ）出力を、コードベースインデックス内の対応するローカライゼーションオブジェクトに関連付けることと、識別子の第１インスタンスを識別子の第２インスタンスとマッチングすることを含む。識別子の第１インスタンスは、コードベースインデックスに対応するコードベース内に位置し、識別子の第２インスタンスは、ＵＩ出力に対応するコードベースは、所与のコンテキストにおいて識別子を含むように構造化する。更なる動作は、ＵＩ出力が所与のコンテキストにおいて不正確であるという決定に応答して、ＵＩ出力の対応するローカライゼーションオブジェクトへのリファレンスを取り出すことと、対応するローカライゼーションオブジェクトへのリファレンスを出力することを含む。リファレンスは、追跡システムのチケットにコピーする。【選択図】図２
2020126649.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのコンピュータプロセッサによって、ユーザインタフェース（ＵＩ）出力を、コードベースインデックス内の対応するローカライゼーションオブジェクトに関連付けるステップと；
前記少なくとも１つのコンピュータプロセッサによって、一意の識別子の第１インスタンスを前記一意の識別子の第２インスタンスとマッチングするステップであって、
前記一意の識別子の前記第１インスタンスは、前記コードベースインデックスに対応するコードベース内に位置し、
前記一意の識別子の前記第２インスタンスは、前記ＵＩ出力に対応し、
前記コードベースは、所与のコンテキストにおいて前記一意の識別子を含むように構造化される、ステップと；
前記少なくとも１つのコンピュータプロセッサによって、前記ＵＩ出力が前記所与のコンテキストにおいて不正確であるという決定に応答して、前記ＵＩ出力の前記対応するローカライゼーションオブジェクトへのリファレンスを取り出すステップと；
前記少なくとも１つのコンピュータプロセッサによって、前記対応するローカライゼーションオブジェクトへのリファレンスを出力するステップと；
を含む、方法。
【請求項２】
前記所与のコンテキストは、フォームフィールド入力検証の結果を含む、
請求項１に記載の方法。
【請求項３】
前記所与のコンテキストは、マルチレベルナビゲーションパスの結果を含む、
請求項１に記載の方法。
【請求項４】
前記少なくとも１つのコンピュータプロセッサによって、前記マルチレベルナビゲーションパスを表すブレッドクラムを生成するステップ、
を更に含む、請求項３に記載の方法。
【請求項５】
前記少なくとも１つのコンピュータプロセッサによって、前記対応するローカライゼーションオブジェクトへの前記リファレンスを追跡システムのチケットにコピーするステップ、
を更に含む、請求項１に記載の方法。
【請求項６】
前記少なくとも１つのコンピュータプロセッサによって、前記所与のコンテキスト内の前記ＵＩ出力に対応するスクリーンショットをキャプチャするステップ、
を更に含む、請求項１に記載の方法。
【請求項７】
前記ＵＩ出力が前記所与のコンテキストにおいて不正確であるという前記の決定は、所定の曖昧なテキスト文字列との比較の結果を含む、
請求項１に記載の方法。
【請求項８】
メモリと；
前記メモリに結合される少なくとも１つのプロセッサであって、
ユーザインタフェース（ＵＩ）出力を、コードベースインデックス内の対応するローカライゼーションオブジェクトに関連付け、
一意の識別子の第１インスタンスを前記一意の識別子の第２インスタンスとマッチングし、
ここで、前記一意の識別子の前記第１インスタンスは、前記コードベースインデックスに対応するコードベース内に位置し、
前記一意の識別子の前記第２インスタンスは、前記ＵＩ出力に対応し、
前記コードベースは、所与のコンテキストにおいて前記一意の識別子を含むように構造化され、
前記ＵＩ出力が前記所与のコンテキストにおいて不正確であるという決定に応答して、前記ＵＩ出力の前記対応するローカライゼーションオブジェクトへのリファレンスを取り出し、
前記対応するローカライゼーションオブジェクトへのリファレンスを出力する、
ように構成される少なくとも１つのプロセッサと；
を備える、システム。
【請求項９】
前記所与のコンテキストは、フォームフィールド入力検証の結果を含む、
請求項８に記載のシステム。
【請求項１０】
前記所与のコンテキストは、マルチレベルナビゲーションパスの結果を含む、
請求項８に記載のシステム。
【請求項１１】
前記少なくとも１つのコンピュータプロセッサは、前記マルチレベルナビゲーションパスを表すブレッドクラムを生成するように更に構成される、
請求項１０に記載のシステム。
【請求項１２】
前記少なくとも１つのコンピュータプロセッサは、前記対応するローカライゼーションオブジェクトへの前記リファレンスを追跡システムのチケットにコピーするように更に構成される、
請求項８に記載のシステム。
【請求項１３】
前記少なくとも１つのコンピュータプロセッサは、前記所与のコンテキスト内の前記ＵＩ出力に対応するスクリーンショットをキャプチャするように更に構成される、
請求項８に記載のシステム。
【請求項１４】
前記ＵＩ出力が前記所与のコンテキストにおいて不正確であるという前記の決定は、所定の曖昧なテキスト文字列との比較の結果を含む、
請求項８に記載のシステム。
【請求項１５】
少なくとも１つのコンピューティングデバイスによって実行されると、該少なくとも１つのコンピューティングデバイスに：
ユーザインタフェース（ＵＩ）出力を、コードベースインデックス内の対応するローカライゼーションオブジェクトに関連付けることと；
一意の識別子の第１インスタンスを前記一意の識別子の第２インスタンスとマッチングすることであって、
ここで、前記一意の識別子の前記第１インスタンスは、前記コードベースインデックスに対応するコードベース内に位置し、
前記一意の識別子の前記第２インスタンスは、前記ＵＩ出力に対応し、
前記コードベースは、所与のコンテキストにおいて前記一意の識別子を含むように構造化されることと；
前記ＵＩ出力が前記所与のコンテキストにおいて不正確であるという決定に応答して、前記ＵＩ出力の前記対応するローカライゼーションオブジェクトへのリファレンスを取り出すことと；
前記対応するローカライゼーションオブジェクトへのリファレンスを出力することと；
を含む動作を実行させる、格納された命令を有する、非一時的なコンピュータ読み取り可能媒体。
【請求項１６】
前記所与のコンテキストは、フォームフィールド入力検証の結果を含む、
請求項１５に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項１７】
前記所与のコンテキストは、マルチレベルナビゲーションパスの結果を含む、
請求項１５に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項１８】
前記動作は、前記マルチレベルナビゲーションパスを表すブレッドクラムを生成すること、
を更に含む、請求項１７に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項１９】
前記動作は、前記対応するローカライゼーションオブジェクトへの前記リファレンスを追跡システムのチケットにコピーすること、
を更に含む、請求項１５に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項２０】
前記動作は、前記所与のコンテキスト内の前記ＵＩ出力に対応するスクリーンショットをキャプチャすること、
を更に含む、請求項１５に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項２１】
前記ＵＩ出力が前記所与のコンテキストにおいて不正確であるという前記の決定は、所定の曖昧なテキスト文字列との比較の結果を含む、
請求項１５に記載の非一時的なコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
関連出願の相互参照
本特許出願は、２０１７年４月１８日に出願された米国特許出願第１５／４９０，８５２号の一部継続出願である２０１８年４月２７日に出願された米国特許出願第１５／９６５，６０４号に関連する。さらに、米国特許出願第１５／９６５，６０４号は、２０１７年４月１９日に出願された米国特許出願第１５／４９１，９５２号の一部継続出願でもある。上記に列挙された特許出願のすべては、すべての目的のために、その全体が参照により本明細書に組み込まれる。
【０００２】
ソフトウェアローカライゼーション（ｌｏｃａｌｉｚａｔｉｏｎ：地域化）の間、ユーザインタフェース（ＵＩ）トランスレータは、テキスト文字列の翻訳を、その文字列が現れるコンテキスト内で見ることができることが有益であろう。このようなコンテキストは、場合によっては、コンテキスト内の翻訳されたテキスト文字列の正確さを検証するのに有用であることがあり、特に、テキスト文字列が概してコンテキストに敏感であるときや、コンテキストに依存しているときに有用であり得る。例えば所与の言語のテキスト文字列が、例えば人物、数、性別、活用（ｃｏｎｊｕｇａｔｉｏｎ）、語形変化（ｄｅｃｌｅｎｓｉｏｎ）（ケース）、態様、モード（ムード）等の言語上の一致又は調和を必要とする場合、所与の文字列の翻訳が正しいかどうかを判断するためにコンテキストが必要である可能性がある。
【０００３】
例えばウェブアプリケーションでは、コンテキストを確認することは、特定の翻訳された文字列が現れる場所に到達するために正確なウェブページ及び／又はナビゲーションパスを見つける必要があり得る。したがって、ウェブアプリケーションやウェブページを含む、国際化ソフトウェアのためのユーザインタフェースでは、アプリケーション内で欠けているテキストや誤って翻訳されたテキストの特定のソースを見つけることは難しい可能性がある。この難しさは、より大きなサイズのコードベースを有するアプリケーションでは、より大きくなる可能性がある。
【０００４】
ソースコードリポジトリ等における所与のテキスト文字列の正確な位置及びコンテキストは、単に所与のテキスト文字列について単独でそのリポジトリを検索するだけでは明らかにならず、容易に確認することもできない可能性がある。特定のテキストについての文字列マッチングは、相当数の偽陽性を生じる可能性があり、非テキストオブジェクトについては失敗する可能性がある。テキストフィールドについての一意の識別子は、有効性が限られている可能性がある。ウェブアプリケーションをテストするために使用されるような自動デバッグツール又はウェブクローラでさえ、テキスト文字列及びそのそれぞれのコンテキストを見つけることが難しい可能性がある。
【０００５】
加えて、あるアプリケーションにおけるナビゲーションは、複数のステップから成る可能性があり、例えば特定のデータをフォームフィールドに入力することさえ含む可能性がある。大きなコードベースを有するいくつかのアプリケーションでは、特定の文字列のいずれかのインスタンスを見つけることは極めて困難な可能性があり、コンテンツ及び／又はＵＩコンポーネントにいくらか変更を加える際に、トランスレータ及び／又はディベロッパからの大量の時間と労力のかかるリソースを必要とする可能性がある。
【発明の概要】
【０００６】
本明細書では、いくつかの実施形態に従って、ローカライズされたアプリケーション等における翻訳テキストの位置の自動的な発見のためのシステム、装置、製品、方法及び／又はコンピュータプログラム製品の実施形態及び／又はそれらの組合せ及び副次的組合せが提供される。
【０００７】
一実施形態は、翻訳されたテキストの位置の自動的な発見のためのコンピュータ実施方法を含む。この実施形態によれば、少なくとも１つのコンピュータプロセッサは、ユーザインタフェース（ＵＩ）出力を、コードベースインデックス内の対応するローカライゼーションオブジェクトに関連付けることと、一意の識別子の第１インスタンスを一意の識別子の第２インスタンスとマッチングすることいった動作を実行するように構成され得る。
【０００８】
一意の識別子の第１インスタンスは、コードベースインデックスに対応するコードベース内に位置してよく、一意の識別子の第２インスタンスは、ＵＩ出力に対応してよい。コードベースは、所与のコンテキストにおいて一意の識別子を含むように構造化されてよい。更なる動作は、ＵＩ出力が所与のコンテキストにおいて不正確（ｉｎｃｏｒｒｅｃｔ）であるという決定に応答して、ＵＩ出力の対応するローカライゼーションオブジェクトへのリファレンス（ｒｅｆｅｒｅｎｃｅ）を取り出すことと、対応するローカライゼーションオブジェクトへのリファレンスを出力するステップとを含んでよい。
【０００９】
加えて、実施形態は、メモリと、ユーザインタフェース（ＵＩ）出力を、コードベースインデックス内の対応するローカライゼーションオブジェクトに関連付け、一意の識別子の第１インスタンスを一意の識別子の第２インスタンスとマッチングするように構成される少なくとも１つのプロセッサとを有するシステムを含んでよい。
【００１０】
一意の識別子の第１インスタンスは、コードベースインデックスに対応するコードベース内に位置し、一意の識別子の第２インスタンスは、ＵＩ出力に対応してよい。コードベースは、所与のコンテキストにおいて一意の識別子を含むように構造化されてよい。少なくとも１つのプロセッサは、ＵＩ出力が所与のコンテキストにおいて不正確であるという決定に応答して、ＵＩ出力の対応するローカライゼーションオブジェクトへのリファレンスを取り出し、対応するローカライゼーションオブジェクトへのリファレンスを出力するように更に構成されてよい。
【００１１】
更なる実施形態は、その上に格納された命令を有する非一時的なコンピュータ読み取り可能媒体を含んでよい。少なくとも１つのコンピューティングデバイスによって実行されると、命令は、少なくとも１つのコンピューティングデバイスに、ユーザインタフェース（ＵＩ）出力を、コードベースインデックス内の対応するローカライゼーションオブジェクトに関連付けることと、一意の識別子の第１インスタンスを一意の識別子の第２インスタンスとマッチングすることを含む動作を実行させる。
【００１２】
一意の識別子の第１インスタンスは、コードベースインデックスに対応するコードベース内に位置し、一意の識別子の第２インスタンスは、ＵＩ出力に対応してよい。コードベースは、所与のコンテキストにおいて一意の識別子を含むように構造化されてよい。更なる動作は、ＵＩ出力が所与のコンテキストにおいて不正確であるという決定に応答して、ＵＩ出力の対応するローカライゼーションオブジェクトへのリファレンスを取り出すことと、対応するローカライゼーションオブジェクトへのリファレンスを出力することを含んでよい。
【図面の簡単な説明】
【００１３】
添付の図面は、本明細書に組み込まれ、本明細書の一部を構成する。
【００１４】
【図１】一実施形態による、ウェブアプリケーションにおける自動テキスト発見に適合し得る例示のアーキテクチャを示すブロック図である。
【００１５】
【図２】一実施形態による、自動テキスト発見プロセスの例を示すフローチャートである。
【００１６】
【図３】一実施形態による、国際化成熟度モデル（ｉｎｔｅｒｎａｔｉｏｎａｌｉｚａｔｉｏｎ  ｍａｔｕｒｉｔｙ  ｍｏｄｅｌ）の一例を示すチャートである。
【００１７】
【図４】一実施形態による、テスト中のウェブアプリケーションの成熟度の評価を示すチャートである。
【００１８】
【図５】様々な実施形態を実装するために有用な例示のコンピュータシステムを示す図である。
【００１９】
図面は、本発明の実施形態の代表である。図面において、同様の参照番号は一般に、同一又は類似の要素を示す。さらに、一般に、参照番号の左端の数字は、参照番号が最初に現れる図面を識別する。
【発明を実施するための形態】
【００２０】
本明細書では、いくつかの実施形態に従って、ローカライズされたアプリケーション等における翻訳テキストの位置の自動的な発見を実装するためのシステム、方法及び／又はコンピュータプログラム製品の実施形態及び／又はそれらの組合せ及び副次的組合せが提供される。
【００２１】
テキスト発見
いくつかの実施形態によれば、ソースコードファイル又は他のデータファイル内を含む、アプリケーションのテキストは、コードベース内で検索され得る。コードベースは、例えばリポジトリであってもよく、あるいは、プログラムソースコードのための第１リポジトリと、ローカライゼーションデータ、翻訳ファイル、キー値ペア、プロファイル等のための第２リポジトリのように、複数のリポジトリを含んでもよい。場合によっては、コードベース又はリポジトリは、ファイルシステム内のファイルディレクトリ構造であってもよい。
【００２２】
また、リポジトリは、バージョン制御システム又はそのためのソフトウェアを含んでもよく、あるいはそれらによってアクセス可能であってもよい。バージョン制御ソフトウェアのいくつかの例は、数個の非限定的な例には、ソースコード制御システム（ＳＣＣＳ：Ｓｏｕｒｃｅ  Ｃｏｄｅ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ）、リビジョン制御システム（ＲＣＳ：Ｒｅｖｉｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ）、コンカレントバージョンシステム（ＣＶＳ：Ｃｏｎｃｕｒｒｅｎｔ  Ｖｅｒｓｉｏｎｓ  Ｓｙｓｔｅｍ）、Ｓｕｂｖｅｒｓｉｏｎ（ＳＶＮ）、Ｍｅｒｃｕｒｉａｌ（Ｈｇ）、ＢｉｔＫｅｅｐｅｒ及びＧｉｔが含まれる。リポジトリをブラウジングする他の方法は、リポジトリブラウザ又はドキュメント管理システム（ＤＭＳ）を含んでよく、これらは、特定のバージョン制御システムで動作し、所与のファイルの複数のバージョンを同時にブラウズ、検索及び／又は比較するようにカスタマイズされ得る。あるいはまた、再帰的テキスト検索、パターンマッチング、メタデータ検索等の他の既知の検索技術が使用されてもよい。
【００２３】
所与のコードベース又はリポジトリにおいて、テキスト変更は、アプリケーションのソースコード内のどこかで行われ得る。これらの変更を、例えばバージョン制御システムに記憶することができる。そのようなバージョン制御システムは、所与のソフトウェアバージョンにおける変更のレポートを作成するように構成されてよい。レポートは、例えば特定の変更を行ったディベロッパの名前、実際の変更、並びに各変更に対してディベロッパによって追加されたコメントを含んでよい。
【００２４】
そのようなレポート又は変更ログは、所与のテキスト文字列の出現を判断し、それから、この所与のテキスト文字列の所与の変更の理由及びコンテキストと、変更を行ったディベロッパをルックアップするのに役立つ可能性がある。いくつかの実施形態では、変更に対するコミットは、追加情報を提供し得る問題追跡システム（ｉｓｓｕｅ−ｔｒａｃｋｉｎｇ  ｓｙｓｔｅｍ）へのリファレンスを含んでもよい。したがって、クロスリファレンスプログラムを作成及び／又は使用して、クロスリファレンスインデックスを構築し、所与の変更について、それぞれのディベロッパ、問題追跡ＩＤ及び変更の理由、並びに変更前及び／又は変更後の所与の変更されたテキスト文字列の状態を示すことができる。変更されたテキスト文字列のこのコンテキスト情報は、問題となっている所与のテキスト文字列の位置をトラックダウンするために使用されてよい。以下で更に説明されるように、同様の目的のために他のアプローチ及び実施形態が実現されてよい。
【００２５】
いくつかの実施形態において、所与のアプリケーションは、デバッグモードを備えることがある。例えば上記で参照されて本明細書に組み込まれる、関連する米国特許出願第１５／９６５，６０４号で説明されるウェブアプリケーションは、所与のウェブページ上のテキスト文字列の何らかの指定された出現を、そのテキスト文字列に対応する一意の識別子、例えばキー等で補足することができ、したがって、各文字列は一意のプロパティキーを有し得る。そのようなキーは、いくつかの実施形態によれば、未割り当て値を有してもよく、かつ／又は、例えばデバッグモードでは名前によって表示されて、通常の実行モードでは表示されなくてもよい。このデバッグ情報は、通常の使用又はテストの過程でページを見ようとするウェブアプリケーションの人間のユーザ又はテスターを混乱させる可能性があるが、このようなデバッグ情報は、コンピュータプログラム（例えば自動テストツール、手動デバッグツール等）が、例えばテスト発見をプログラム的に実行するウェブページをロードし、出力テキスト文字列を自動的に見つけて、それらをソースリポジトリ内の対応する位置に関連付けるのに有用であり得る。
【００２６】
そのようなテキスト位置発見プログラムは、ウェブページ上に現れるテキストを検索し、次いで、各テキスト文字列のキーからウェブページのアドレス又はユニフォームリソースロケータ（ＵＲＬ）へのクロスリファレンスインデックスを構築することができる。さらに、テキスト位置発見プログラムは、ウェブページ上のリンクを介して自動的にナビゲートしてもよく、あるいは後続のウェブページ上の複数レベルのリンクを再帰的にナビゲートしたり、フォームに入力したり、ボタンをクリック／タップしたりしてもよい。このようにして、テキスト位置発見プログラムは、例えば検索エンジンで使用されるウェブクローラと同様の方法で、ウェブアプリケーションのページを単独で発見することができる。
【００２７】
これらの機能を組み合わせることにより、このようなテキスト位置発見プログラムが、翻訳された各テキスト文字列に対して、ウェブアプリケーション内でテキスト文字列が現れる場所を示すコードベースインデックスを生成することを可能にすることができる。この機能及び／又はコードベースのインデックスは、いくつかのユースケースにおいて、品質保証（ＱＡ：ｑｕａｌｉｔｙ  ａｓｓｕｒａｎｃｅ）要員が、翻訳されたテキスト文字列を迅速に見つけて、例えば翻訳されたテキスト文字列が現れるウェブページの実際のコンテキストでそれらをレビューすることを可能にし得る。同じ概念を使用して、いくつかの実施形態では、高度のコードカバレッジで、ウェブアプリケーションのすべて又はほとんどのウェブページにナビゲートして、それらのページ上のテキスト文字列及び／又は他のローカライゼーションオブジェクトを記録し、説明されるコードベースインデックスをクロスリファレンス又は構築するように、ウェブアプリケーションのテストスイート（ｔｅｓｔ  ｓｕｉｔｅ）を実装してもよい。
【００２８】
米国特許出願第１５／９６５，６０４号のデバッグモード又はデバッガに加えて、人間のユーザがウェブアプリケーションデバッガと対話してページ等へナビゲートすることを必要とすることなく、少なくとも１つのコードベースにおけるテキスト文字列及びそれらのそれぞれの位置の自動検出を可能にするための機能を追加することができる。したがって、本明細書で説明される強化された技術に従ってプロセスを自動化することによって、自動化デバッガ又はテストツールは、人間のテスターによるアクセスに時間を要するか、かつ／又は他の方法ではウェブクローラによる検出が困難又は不可能な可能性がある、追加のページ（例えば比較的長い一連のアクション又はあるフォームフィールド内の特別な入力に依存するページ）に到達することができる。
【００２９】
図１は、一実施形態による、ウェブアプリケーションにおける自動テキスト発見に適合し得る例示のアーキテクチャを示すブロック図である。このアーキテクチャの他のバリエーションが、本開示の範囲内の自動テキスト発見に適合することがある。
【００３０】
例えばウェブアプリケーション、プラットフォーム、システム又はプログラム等の例示のアーキテクチャ１００は、コードベース１１０、コードベースインデックス１２０及びＵＩ  １３０を含んでよい。ＵＩ  １３０の一部がＵＩ出力１３２を含んでもよい。ＵＩ  １３０は、図１に示されていない他の部分を含んでもよい。コードベース１１０はローカライゼーションオブジェクト１１２を含んでもよく、ローカライゼーションオブジェクト１１２は、少なくとも１つのローカライゼーションオブジェクト１１２ａ、１１２ｂ等を含んでよい。各ローカライゼーションオブジェクトは、例えばローカライゼーションオブジェクト１１２ａに対応するＵＩＤ  １４２ａ、ローカライゼーションオブジェクト１４２ｂに対応するＵＩＤ  １４２ｂ等のように、一意の識別子（ＵＩＤ）に対応し得る。
【００３１】
一意の識別子は、いくつかの実施形態では一意の記述的名前（ｕｎｉｑｕｅ  ｄｅｓｃｒｉｐｔｉｖｅ  ｎａｍｅ）を有し得るキーであってよく、ロケールタグ（ｌｏｃａｌｅ  ｔａｇ）を含んでもよい。ロケールタグは、例えばユーザ及び／又は管理者によることを含め、グローバルに又はローカルに設定されてよい。他の実施形態では、一意の識別子は、シンボル、ハッシュ値又は他の一意のリファレンスであってよい。ＵＩＤは、例えばＵＩＤ  １４２ａに対応するローカライゼーションオブジェクト１１２ａのコンテンツ１４４ａ等のように、ローカライゼーションオブジェクトに対応するコンテンツとペアリングされてよい。一部の実施形態では、コンテンツ１４４ａ、１４４ｂ等は、テキスト文字列、画像、アニメーション、ビデオ、オーディオ又はそれらの任意の組合せを含んでもよい。
【００３２】
ローカライゼーションオブジェクト１１２に対応して、ＵＩ出力１３２は、それらの一意の識別子によるローカライゼーションオブジェクトへのリファレンスを含んでもよい。例えばＵＩ出力１３２は、コンテンツ１４４ｂを無条件に出力するように構成されてもよい。コンテンツ１４４ｂは、例えばテキスト文字列であってもよい。ＵＩＤ  １４２ｂを参照し得る、出力又はプリントする機能１７２ｂを有することによって、出力の結果は、コンテンツ１４４ｂ（ＵＩ出力１３２には図示せず）であってもよい。また、ＵＩ出力１３２は条件を説明してもよい。例えば無効なＵＩ入力（図示せず）があると、この場合、出力機能１７２ａは、ＵＩＤ  １４２ａを参照した結果として、コンテンツ１４４ａ（ＵＩ出力１３２内に図示せず）をプリントするように構成されてもよい。したがって、コードベース１１０は、ＵＩＤ  １４２ａの第１インスタンスとＵＩＤ  １４２ｂの第１インスタンスを含み、ＵＩ出力１３２は、すべてのユースケースで一定の条件が満たされていない場合であっても、リファレンスによって、ＵＩＤ  １４２ａ及びＵＩＤ  １４２ｂの対応する第２インスタンスを有する。
【００３３】
コードベースインデックス１２０は、いくつかの実施形態によると、コードベース１１０及びＵＩ出力１３２にまたがって、一意の識別子のこれらの第１及び第２インスタンスをクロスリファレンスするように構成されてもよい。コードベースの位置は、いくつかの非限定的な例を提供するため、例えば所与のパス名、ファイル名、行番号、列番号、範囲又はそれらの任意の組合せを含むことができる。出力位置は、いくつかの非限定的な例を提供するため、例えばユニフォームリソースロケータ（ＵＲＬ）、ユニフォームリソース識別子（ＵＲＩ）、ブレッドクラム（ｂｒｅａｄｃｒｕｍｂ）、パス名、ファイル名、行番号、列番号、範囲又はそれらの任意の組合せを含むことができる。コードベースインデックス１２０の図示された例では、パス１５２ａはＵＩＤ  １４２ａに対応し、ＵＲＬ  １６２ａとクロスリファレンスされ、パス１５２ｂはＵＩＤ  １４２ｂに対応し、ＵＲＬ  １６２ｂとクロスリファレンスされる等である。出力位置が複数の対応する一意の識別子に対して同じであることのように、より特異性が好ましいか又は必要である場合、いくつかの実施形態において、追加の位置情報が含まれてもよい。
【００３４】
これらの要素、これらの要素間のインタラクション及びこれらの要素の他の取扱いについての追加的な説明は、更に以下に見られる。同様の要素の他の組合せ、構成及び配置が更に可能であり、本明細書で説明される強化された技術は、図１に示される構成に限定されない。
【００３５】
図２は、一実施形態による、ローカライズされたアプリケーションにおける翻訳テキストの位置の自動的な発見のための例示的プロセス２００を示すフローチャートを示している。プロセス２００は、ハードウェア（例えば回路、専用ロジック、プログラム可能ロジック、マイクロコード等）、ソフトウェア（例えば処理デバイス上で実行する命令）又はそれらの組合せを含み得る処理ロジックによって実行されてよい。
【００３６】
本明細書で提供される開示を実施するために必ずしもすべてのステップが必要とされるわけではないことが認識されよう。さらに、当業者によって理解されるように、ステップのいくつかは同時に実施されてもよく、図２に示されるものと異なる順序で実施されてもよい。プロセス２００は、図２及び図５を参照して説明する。しかしながら、プロセス２００は、これらの例示的な実施形態に限定されない。
【００３７】
２０２において、少なくとも１つのプロセッサ４０４は、ＵＩ出力を、コードベースインデックス内の対応するローカライゼーションオブジェクトに関連付けることができる。一実施形態では、コードベースインデックスは、例えばテキスト文字列、イメージ、アニメーション、ビデオ、サウンド等のＵＩ出力を、コードベース内の対応する位置でクロスリファレンス又はインデックス化するために使用され得る情報が取り込まれる、テキストファイル、データストリーム、データベース又は他のデータ構造であってよい。
【００３８】
コードベースは、例えばリポジトリであってもよく、あるいはプログラムソースコードのための第１リポジトリと、ローカライゼーションデータ、翻訳ファイル、キー値ペア、プロファイル等のための第２リポジトリのような複数のリポジトリを含んでもよい。いくつかの実施形態において、ローカライゼーションオブジェクトは、例えば翻訳ファイル又はプロファイル全体、例えば翻訳ファイル又はプロファイルにおける所与のキー値ペア、あるいはそれらの任意のセット又は組合せといった、そのようなローカライゼーションデータのコンテンツの任意のインスタンスであってよい。
【００３９】
いくつかの実施形態において、この第２リポジトリのコンテンツは、例えば第１リポジトリ内の（サブ）ディレクトリとして又は第１リポジトリのブランチ内に存在してもよい。プロセス２００の目的のために、他のプログラムコードに関するローカライゼーションオブジェクトの相対的な位置は、プロセス２００の全体的な効果を変更することなく、異なる実施形態にわたって異なってもよい。
【００４０】
ＵＩ出力をコードベースインデックス内の対応するローカライゼーションオブジェクトに関連付けるために、プロセッサ４０４は、コードベースインデックス内の少なくとも１つのエントリを作成、追加又は修正し、いくつかの実施形態では、（例えばテキスト文字列の識別情報又はコンテンツによって、かつ／又は包含しているメモリ位置へのリファレンス又はポインタによって）所与のＵＩ出力を識別し、識別された所与のＵＩ出力をコードベース内の少なくとも１つの特定の位置にリンクすることができる情報をコードベースインデックスに提供する。コードベース内の特定の位置は、いくつかの非限定的な例を提供するため、例えば所与のパス名、ファイル名、行番号、列番号、範囲又はそれらの任意の組合せを含んでよい。
【００４１】
２０４において、プロセッサ４０４は、コードベースインデックスに対応するコードベースにおいて、一意の識別子の第１インスタンスを、ＵＩ出力に対応する、当該一意の識別子の第２インスタンスとマッチングする。一実施形態では、一意の識別子の第１インスタンスは、ローカライゼーションデータを含むコードベース内に存在してもよく、その場合、一意の識別子の第１インスタンスは、例えばローカライズプロファイル又は翻訳ファイル内のキー値ペアのキーであってもよい。
【００４２】
別に、ＵＩ出力に対応する一意の識別子の第２インスタンスは、例えばウェブページ、ウェブアプリケーション、出力ファイル、プリントアウト又は他の出力における出力のためにレンダリングされ得るコード内のコール（ｃａｌｌ）又はリファレンスであってよく、したがって、そのような対応する出力のためにレンダリングされ得るコードは、いくつかの例として、一意の識別子に対応するデリファレンス値に従って出力を可能にするよう、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張可能マークアップ言語（ＸＭＬ）ユーザインタフェース言語（ＸＵＬ）、あるいは実質的に任意の他の言語のコール（システムコール、ライブラリコール、関数コール等）であってよい。
【００４３】
したがって、一実施形態では、一意の識別子の第２インスタンスは、出力関数又はレンダリングフィールドへの引数であってもよく、マッチングは、ローカライゼーションプロファイルにおける対応するキーのテキスト文字列についてであってもよく、この場合、対応するキーは、一意の識別子の第１インスタンスを含んでもよい。そのようなシナリオでは、実際の出力は、例えばローカライゼーションプロファイルのキー値ペア内のマッチングしたキーに対応する値を含んでもよい。キー値ペアは、この場合、上述のように、ローカライゼーションオブジェクトであると見なされてよい。
【００４４】
２０６において、プロセッサ４０４は、ＵＩ出力が、所与のコンテキストにおいて不正確であるという決定に応答して、ＵＩ出力の対応するローカライゼーションオブジェクトへのリファレンスを取り出してよい。一実施形態では、その決定は、プルーフリーダ、トランスレータ、ＵＩ／ＵＸ（ユーザ体験）設計者、ソフトウェアテスター及び／又はソフトウェアディベロッパ等のローカライズ専門家による手動決定であってよい。他の実施形態において、その決定は、ＵＩ出力の所与のコンテキストにおいてエラーや誤って翻訳されたテキストを識別する、複数の潜在的なテスト条件のうちの少なくとも１つに基づく自動決定であってもよい。
【００４５】
所与のコンテキストにおいてＵＩ出力が不正確である例は、一実施形態では、例えば格変化（ｃａｓｅ  ｄｅｃｌｅｎｓｉｏｎ）の不一致、数の不一致、性別の不一致等の結果として、名詞−形容詞の一致又は主語−動詞の一致の欠如であり得る。一実施形態では、このような不正確な翻訳は、いずれか１つのローカライゼーションオブジェクトそれ自体には存在せず、むしろ、ローカライゼーションオブジェクトの組合せにおいて存在することがあり、この場合、組合せのローカライゼーションオブジェクトのうちの１つ以上のローカライゼーションオブジェクトは、例えばローカライゼーションオブジェクトの組合せのコンテキストのような所与のコンテキストにおいて、ＵＩ出力を不正確なものにする可能性がある。
【００４６】
コンテキストが役に立つ別の例は、ＵＩ出力が多義性又は多義語を含み得る場合である。ローカライゼーションは、ソーステキストで使用される多義語のあいまいさをなくすために、コンテキストを必要とすることがある。いくつかの実施形態によれば、「顧客（customer）」という用語に対して特別な取扱いが使用されてよく、この用語は、他の事業体のような会社のクライアントを指すことがあり、あるいは別個に電子商取引サイトの最終消費者を指すこともあり、「顧客」という用語のこれらの意味は、たとえそれらが、アプリケーションが開発され得るネイティブのソースロケールにおいて同じように扱われるとしても、いくつかのロケールにおいて区別され得る。所与のアプリケーションで実際に現れるようなＵＩ出力の十分なコンテキストがなければ、場合によっては、いくつかのローカライゼーションの効果的で成功したレビューが困難又は不可能になる可能性がある。
【００４７】
したがって、いくつかの実施形態では、ローカライゼーションのテストは、パターンマッチング、ヒューリスティック、ニューラルネットワーク、人工知能、機械学習、他の適用可能なアルゴリズム又はこれらの任意の組合せによって自動化されてよく、これにより、例えば所与のローカライゼーション対象言語のローカライズされたＵＩ出力で見られる可能性がある文字列のコンテキスト非依存連結（ｃｏｎｔｅｘｔ−ｉｎｓｅｎｓｉｔｉｖｅ  ｃｏｎｃａｔｅｎａｔｉｏｎ）又は他のコンテキスト不一致のテキストによる不完全な合意（ｆａｕｌｔｙ  ａｇｒｅｅｍｅｎｔ）の頻繁なパターンを識別するために、ルールを適用することによって、エラー又は潜在的に不正確なテキストにフラグを立てることができる。そのようなパターンは、所定の曖昧なテキスト文字列として指定され得る他の可能性に加えて、既知の漠然とした言語とみなされることがあり、そのような所定の曖昧なテキスト文字列は、テストされているＵＩ出力と比較され得る。
【００４８】
更なる実施形態において、ＵＩ出力が所与のコンテキストにおいて不正確であるという決定は、不正確性を完全に確信するものである必要はなく、例えばテキストが不正確である又は不正確である可能性があるという閾値に対する信頼性又は確率のレベルであってもよい。テキスト又は翻訳テキストが画像、ビデオ又はオーディオ出力のコンテンツであり得る実施形態では、例えばプロセッサ４０４は、メタデータタグ、光学式文字認識（ＯＣＲ）、コンテンツベースの取り出し、コンテンツベースの指紋又は署名、スピーチトゥテキスト変換又は他の手段を使用して、ローカライゼーションオブジェクトのコンテンツを識別して潜在的に不正確なテキストにフラグを立てることができる。
【００４９】
加えて、２０６において、ＵＩ出力の対応するローカライゼーションオブジェクトへのリファレンスを取り出すために、プロセッサ４０４は、ローカライゼーションオブジェクトに対応するＵＩ出力のためにレンダリングされてよく、したがって、ＵＩ出力に対応する一意の識別子の第２インスタンスを含む、ソースコードファイル又はマークアップファイルのうちの少なくとも一方を識別するように更に構成されてよい。
【００５０】
一実施形態では、ソースコードファイル又はマークアップファイルの識別は、ＵＩ出力に対応する一意の識別子の第１及び第２インスタンスの両方をデリファレンスするために、コードベースインデックス内で既にクロスリファレンスされていることがあり、それによって、ＵＩ出力に対応する、対応するローカライゼーションオブジェクトへのリファレンスを取り出す。しかしながら、一意の識別子の２番目のインスタンスがまだクロスリファレンスされていない場合には、一意の識別子の第２インスタンスを含むソースファイル又はマークアップファイルの識別を、例えば一意の識別子の第２インスタンスにつながるファイルパス、ファイル名（ｆｉｌｅｎａｍｅ）、ナビゲーションパス及び／又はＵＲＬを決定することによって行うことができる。
【００５１】
上記２０６に関して実証されているように、ＵＩ出力の対応するローカライゼーションオブジェクトへの「リファレンス」は、いくつかの実施形態において、ローカライゼーションオブジェクトへのコール（例えば一意の識別子の第２インスタンスを使用する関数引数）及び／又はそのコールの位置（例えばコールを含む／コールを呼び出すソースファイル、マークアップファイル、ＵＲＬ等のパス）を指すことがある。
【００５２】
したがって、リファレンスの取り出しは、ソースコードリポジトリ及び／又はローカライゼーションリポジトリ等におけるテキストの位置の識別子を（例えば実行パス又は取り出しパスの分解（ｒｅｓｏｌｕｔｉｏｎ）から）決定すること又は（例えばインデックス内のクロスリファレンスエントリから）ロードすることを含み得る。そのようなテキストの位置は、例えば所与のローカライゼーションオブジェクトについてコンテキストの決定を行うために、更に探索又は分析され得る。テキスト（例えば元のテキスト又は翻訳されたテキスト）の位置の識別子は、いくつかの実施形態において、所与のパス名、ファイル名、行番号、列番号、範囲又はそれらの任意の組合せを含んでよい。
【００５３】
２０８において、プロセッサ４０４は、対応するローカライゼーションオブジェクトへのリファレンスを出力することができる。いくつかの実施形態では、出力は、不正確なＵＩ出力の手動又は自動処理のために、ウェブブラウザ、デバッグツール、翻訳ツール又はそれらの任意の組合せに対するものであってよい。いくつかの実施形態において、出力は、対応するローカライゼーションオブジェクトへのリファレンスを、追跡システム、チケッティングシステム、バグ報告システム又は問題報告システム又は問題追跡システムのチケットにコピーすることを含んでもよく、例えばいくつかの非限定的な例には、Ｂｕｇｚｉｌｌａ、Ｔｒａｃ、Ｊｉｒａ、Ｒｅｄｍｉｎｅ等が含まれる。
【００５４】
このような場合、リファレンスは、一意の識別子の第２インスタンスを含むソースコード又はマークアップコードのコピー、ローカライゼーションオブジェクトのリテラル又は短縮再現、一意の識別子の第２インスタンスが見つかった対応するソースコードファイル又はマークアップファイルの位置（パス、ＵＲＬ等）又は上記の任意の組合せを含んでもよい。更なる実施形態において、コンテキストはまた、同一又は類似の出力で再現され得る。
【００５５】
２０６、２０８及び／又はプロセス２００の他の側面の目的のために、コードベースは、所与のコンテキストにおいて一意の識別子（その任意のインスタンス）を含むような方法で構造化されてよい。しかしながら、ローカライゼーションオブジェクトのコンテキストは、その実際に表示されるＵＩ出力であるため、そのリファレンスを用いてコードベース内で見つかるような一意の識別子自体のコンテキストからは、容易には明らかではない可能性がある。いくつかの実施形態では、コードベースが所与のコンテキストにおいて一意の識別子を含むように構造化される場合であっても、コードベース又はアプリケーションのテストは、ＵＩ出力のコンテキストを決定するために必要とされることがあり、したがって、任意の対応するコードを実行又はレンダリングして、ローカライゼーションオブジェクトのＵＩ出力コンテキストを決定する。
【００５６】
グラフィカルユーザインタフェース（ＧＵＩ）ベース又はウェブアプリケーションテストを含む実施形態では、手動又は自動テストは、所与のコンテキストでＵＩ出力に対応するスクリーンショットをキャプチャすることを更に含んでもよい。このようなキャプチャされたスクリーンショットは、場合によっては、チケットの一部として、チケッティングシステム、問題追跡システム又はバグ追跡システムに追加的に提示されてもよい。さらに、そのようなキャプチャされたスクリーンショットは、例えばコードベース内のソースコードから容易に入手できない追加のコンテキストを含むことがある。
【００５７】
いくつかのローカライゼーションオブジェクトの他の例は、いくつかの実施形態では、複数のレベルをメニューシーケンス、ウェブサイト又はウェブアプリケーションの中へ深くナビゲートすることによってのみ、アクセス可能であり得る。したがって、マルチレベルナビゲーションパスは、それに従うと、あるローカライゼーションオブジェクトの何らかの特定のコンテキストをもたらすことができ、その場合、そのコンテキストは、他の方法では、例えばテキスト検索や近接検索によって単純にはコードベースから容易に入手可能でない可能性がある。加えて、このようなマルチレベルのナビゲーションパスは、ブレッドクラムで表すことができる。所与のテストのためのマルチレベルナビゲーションパスを表すブレッドクラムは、例えばテストシステム、デバッグツールのキャパシティ内で機能するか、テスト中のウェブサイト又はウェブアプリケーションの通常動作の一部として、プロセッサ４０４によって生成されてもよい。
【００５８】
いくつかの実施形態では、テストは、フォームフィールド入力検証を含んでもよい。例えばいくつかのローカライゼーションオブジェクトは、アプリケーションの静的ページやデフォルト出力を介して直接アクセス可能でないことがある。代わりに、そのようなローカライゼーションオブジェクトは、フォームフィールドを介して入力される有効及び／又は無効な入力値のような一定の入力を処理するときにのみ、それらのローカライゼーションオブジェクト自身を提示してもよい。このような場合、フォームフィールド検証による自動テストは、テスト時間とコードカバレッジを改善し、さもなければコードベースから直接アクセスすることが難しい可能性があるコンテキスト情報を得ることができる。
【００５９】
約１，３００個のＨＴＭＬテンプレートファイルと約２８，０００個のキー（例えば文字列内に１１５，０００個のワードを有する）のウェブプラットフォームに、本明細書に開示される強化された技術を適用するいくつかの利点の例として、一実施形態によると、この場合、ユーザ（又はテスター）に対して表示され得る別個のウェブページの数は約千個であり、これは、例えば複数のページにおけるテンプレートファイルの再利用及び／又はいくつかのページが複数のテンプレートファイルにわたることを説明する。いくつかのページが、表示について複数の状態を有することがある（例えば最初にページにナビゲートしたときの第１状態、無効なデータの入力の後にエラーメッセージを受け取ったときの第２状態、有効なデータを入力したときの第３状態等）。したがって、所与の別個のページをテストするために、ウェブプラットフォームのテストは、別個のインタラクションとしてページ自体をナビゲートすること以外に、平均して２つの追加のインタラクションを必要とし得る。したがって、この例示的なウェブプラットフォームの完全なテストは、テスターによる手動又は自動の完全な三千個のインタラクションを必要とし得る。
【００６０】
手作業のテストの場合、上述のウェブプラットフォームの例を用いると、所定のインタラクションは、平均して１回に約１分を要する可能性がある。インタラクションには、ボタンのクリック又はタッピング、入力のための有効な及び／又は無効なデータの準備（アップロードのためのテキスト及び／又はファイルを含む）、入力データのコピー、有効なデータの入力、無効なデータの入力、ページＵＲＬ及び／又はブレッドクラムの記録、所与のページ及び／又は入力のためのＵＩ出力の記録が含まれる。ＵＩ出力自体の記録に加えて、ローカライズされたＷｅｂアプリケーションでは、ローカライゼーションオブジェクトをローカライズされたＷｅｂアプリケーションのＵＩ出力の一部として識別するために、対応するローカライズキーも（例えばコードベース内のキーの識別及び／又は位置によって）記録され得る。キーを記録することは、キー情報及びページ／位置情報を別のデータベース又はスプレッドシートにコピーする必要があり得るため、キーを記録することは、各キーについて更に１５秒を要する場合がある。所与のページは、例えば平均して３０個のキーを参照することがある。
【００６１】
ここで、各キーが１５秒かかると仮定すると、平均的なページについて完全に記録するには、３０個のキーは、約４５０秒、つまり７．５分かかる。ページインタラクションを実行するために１分（６０秒）を追加すると、各ページを完全にレビューするのに平均で５１０秒、つまり８．５分かかることになる。したがって、３，０００ページのウェブプラットフォームでは、サポートされる各言語又はロケールについて、ローカライズされたウェブアプリケーションの所与のインストールをテストするために、完全なローカライゼーションレビュー（テスト）は、レビューアとして役割を果たす少なくとも１人のテスター、ディベロッパ、トランスレータ、ローカライゼーションの専門家又はそれらの組合せ等による手動レビューの合計時間の３，０００×８．５分=２５，５００分、つまり４２５時間を必要とする可能性がある。
【００６２】
加えて、所定のウェブプラットフォーム又はウェブアプリケーションに対する更新が、コードベース全体を通してテキスト又はイメージを完全に修正しない場合であっても、ローカライゼーションテストは依然として、最初の開発段階とほぼ同じ時間を要する可能性がある。なぜなら、そうでなければ、修正されたテキスト（又は修正された翻訳されたテキスト）がどのページに現れ得るかを知ることができないためである。したがって、テスターは、更新を実行するときに、所与のインストールのほとんど又はすべてのページをナビゲートする必要がある可能性があり、その結果、いくつかのユースケースでは、ローカライズされたアプリケーションを維持するために、作業時間とコストの持続不可能な増加をもたらす。したがって、本明細書に開示されるように、ＵＩ出力に対応するクロスリファレンスのローカライゼーションオブジェクトを使用する自動のテストは、ローカライズされたアプリケーションの操作、維持及び性能にかなりの利点をもたらす可能性がある。
【００６３】
テストは、例えば様々なツール、フレームワーク又は方法を用いて自動化されてよい。コードベースは、いくつかの実施形態では、静的分析等によって検証されてもよい。他の実施形態では、結果として得られるアプリケーションは、いくつかの場合には、実際の出力に焦点を当てて、動的に分析されもよい。ウェブアプリケーション又はある種の他のＧＵＩアプリケーションの場合、いくつかの非限定的な例を挙げると、Ｓｅｌｅｎｉｕｍ、Ｃａｐｙｂａｒａ、Ｗａｔｉｒ、Ｒｏｂｏｔ  Ｆｒａｍｅｗｏｒｋ、ｘＵｎｉｔ又はそれらの任意の組合せを含む、テスト自動化のための特別なフレームワークが使用されてよい。更なる実施形態では、そのような自動化されたテストは、連続的な統合、連続的な展開、連続的な配信又はそれらの任意の組合せを含むアプローチの一部として実施されてよい。
【００６４】
特定のアプリケーションの段階と成熟度、あるいは国際化能力や具体的な地域化における特定の進歩に応じて、例えば特定のソフトウェアテスト方法やパラダイムが並行に又は連続して使用されてよい。国際化及びいくつかの具体的な地域化に関して、そのようなプロジェクトの成熟度又は進歩を評価する追加的な例を以下で更に説明する。
【００６５】
グローバルソフトウェア開発の評価のための国際化成熟度モデル
自分たちの製品のグローバル展開を支援するためのコードの成熟度を評価する構造化された方法がなければ、グローバル市場向けのソフトウェアを生産するロケール特有の市場（ｌｏｃａｌｅ−ｓｐｅｃｉｆｉｃ  ｍａｒｋｅｔｓ）で働く開発チームは、彼らが直面することが予想され得る多様な技術を扱う準備ができていない可能性がある。この国際化成熟度モデルは、開発チームが、異なるロケールで動作するコードの能力に関して、自分たちの立場を評価することを可能にし、また、あるレベルから次のレベルまでのチームをガイドすることを助けるように自己ガイド調査としても機能することができる。
【００６６】
一般的な質問（下記を参照されたい）、並びにエンコーディングの使用、ユニコード／ＣＬＤＲのサポート又は他のロケールプロバイダクラス、ライブラリ等に関するテクノロジーごとの質問に対する回答は、開発チームが自己評価して、追加言語で次のレベルのグローバルなサポートを提供するために何をすべきかを認識することを可能にすることができる。
【００６７】
１つの例示的な実施形態として、国際化（ｉ１８ｎ）成熟度モデルは、例えば米国中心の開発チームのために、図３に示されるように現れてよい。例えば多言語化（ｍ１７ｎ）能力、ｉ１８ｎ能力、組織化ステータス（ｏｒｇａｎｉｚａｔｉｏｎａｌ  ｓｔａｔｕｓ）、ローカライゼーション（地域化）（ｌ１０ｎ）ステータス等のような様々な次元のいずれかにおいて成熟度のレベルの評価又は決定が行われてもよく、自動的に生成されてもよい。いくつかの実施形態では、例えばアプリケーション又はプロジェクト全体から、アプリケーション内の所与のモジュール又はサブプロジェクトの成熟度レベルを示し得る、問題の自動化フラグ付けを含む、手動又は自動テストの様々なフェーズに統合される。図３は、１つの非限定的な実施例を示しているが、この実施例に従って実質的に任意の数の組合せ、カテゴリ、寸法等が可能である。
【００６８】
プロジェクトのｉ１８ｎ／ｌ１０ｎの成熟度を評価するために開発チームに対する一般的な質問の非網羅的で非限定的なリストは、以下を含んでよい：  
【００６９】
パート１  −  般的なＩ１８ｎの準備の評価
【００７０】
１）現在、異なるロケール又は言語のエンドユーザをどのようにサポートしているか？
【００７１】
（ａ）言語セレクタ又はロケールセレクタはあるか？
【００７２】
（ｂ）エンドユーザは、所望の言語を見つけるために何をしなければならないか？
【００７３】
２）ＵＩ言語とデータロケールを区別しているか？
【００７４】
３）コードと、言語又はロケール（ｌ１０ｎ）は異なるリポジトリに分離されているか？
【００７５】
（ａ）ＵＩ言語に変更が行われる場合、コードは再構築する必要があるか？
【００７６】
４）外国語の展開（ｄｅｐｌｏｙｍｅｎｔ）はどのように機能するか？
【００７７】
５）言語はどのようにレンダリングされるのか？
【００７８】
（ａ）ランタイム時に言語パックから、あるいは各言語はコードバージョンか？
【００７９】
６）擬似ローカライゼーション（ｐｓｅｕｄｏｌｏｃａｌｉｚａｔｉｏｎ）は、リリース前に特徴を修飾するために一貫して使用されているか？
【００８０】
７）ディベロッパはｉ１８ｎの要件を認識し、訓練されているか？
【００８１】
８）ｉ１８ｎの欠点（ｄｅｆｅｃｔｓ）はどのように追跡されるのか？
【００８２】
（ａ）言語上の問題と分離されているか？
【００８３】
９）適切なｉ１８ｎをサポートするために、もしあれば、どの程度の自動化が利用可能か？
【００８４】
１０）連続的な統合及び開発モデル（ｃｏｎｔｉｎｕｏｕｓ  ｉｎｔｅｇｒａｔｉｏｎ  ａｎｄ  ｄｅｐｌｏｙｍｅｎｔ  ｍｏｄｅｌ）において、ｌ１０ｎが説明されているか？
【００８５】
１１）テキストはグラフィックスから分離されているか？
【００８６】
（ａ）グラフィックスは文化的に認識される（ｃｕｌｔｕｒａｌｌｙ  ａｗａｒｅ）か？
【００８７】
（ｂ）異なるロケールに対して異なるグラフィックスをサポートすることができるか？
【００８８】
１２）外国人ユーザのためのフィードバック機構はあるか？
【００８９】
（ａ）ｌ１０ｎ問題についての専用のフィードバック機構が存在するか？
【００９０】
パート２：技術特有のレベル評価及びガイダンス（図４）
【００９１】
図４は、１つの非限定的な例示の実施形態による、テスト中のＪａｖａ（登録商標）ウェブアプリケーションのｉ１８ｎ成熟度の例示的評価を示すチャートを示している。この特定の例では、６つの成熟度レベルのテンプレートが、元々はブランクリストとして、Ｊａｖａアプリケーションの構成設定の対応するリストとともに提供される。
【００９２】
ディベロッパ、テスター、あるいは自動テストツール又はテストスイートは、構成設定のブランクリストの適切なエントリを、対応する構成設定の適切な成熟度レベルに対応する構成設定リストの部分における既存の構成設定又は推奨される構成設定で埋めることがある。図４は、１つの非限定的な実施例を示しているが、この実施例に従って実質的に任意の数の組合せ、カテゴリ、寸法等が可能である。
【００９３】
例示のコンピュータシステム
様々な実施形態は、例えば図５に図示されるコンピュータシステム５００のような１つ以上の周知のコンピュータシステムを使用して実装されてよい。１つ以上のコンピュータシステム５００を使用して、例えば本明細書で説明される実施形態のいずれか、並びにそれらの組合せ及び副次的組合せを実装することができる。
【００９４】
コンピュータシステム５００は、プロセッサ５０４のような１つ以上のプロセッサ（中央処理ユニット又はＣＰＵとも呼ばれる）を含んでよい。プロセッサ５０４は、バス又は通信インフラストラクチャ５０６に接続されてよい。
【００９５】
コンピュータシステム５００はまた、モニタ、キーボード、ポインティング・デバイス等のユーザ入力／出力デバイス５０３も含んでよい。ユーザ入力／出力デバイス５０３は、ユーザ入力／出力インタフェース５０２を通して通信インフラストラクチャ５０６と通信することができる。
【００９６】
１つ以上のプロセッサ５０４は、グラフィックス処理ユニット（ＧＰＵ）であってよい。一実施形態において、ＧＰＵは、数学的に集約的なアプリケーションを処理するように設計された専用の電子回路であるプロセッサであってよい。ＧＰＵは、コンピュータグラフィクスアプリケーション、画像、ビデオ、ベクトル処理、アレイ処理等に共通の数学的に集約的なデータのようなデータの大きなブロックの並列処理、並びに暗号化（ブルートフォースクラッキングを含む）、暗号ハッシュ又はハッシュシーケンスの生成、部分的ハッシュ反転問題の解決及び／又は例えばいくつかのブロックチェーンベースのアプリケーションのための他のプルーフオブワークの計算の結果の生成等に効率的な並列構造を有してもよい。
【００９７】
加えて、プロセッサ５０４のうちの１つ以上は、ハードウェア加速暗号コプロセッサを含め、暗号計算又は他の特別な数学的機能を加速するためのコプロセッサ又は他のロジックの実装を含んでもよい。そのような加速プロセッサは更に、そのような加速を容易にするために、コプロセッサ及び／又は他のロジックを使用する加速のための命令セットを含むことができる。
【００９８】
コンピュータシステム５００はまた、ランダム・アクセス・メモリ（ＲＡＭ）のようなメイン又は一次メモリ５０８を含んでもよい。メインメモリ５０８は、キャッシュの１つ以上のレベルを含んでよい。メインメモリ５０８は、制御ロジック（すなわち、コンピュータソフトウェア）及び／又はデータをその中に記憶することができる。
【００９９】
コンピュータシステム５００はまた、１つ以上の二次ストレージデバイス又は二次メモリ５１０も含んでもよい。二次メモリ５１０は、例えばメインストレージドライブ５１２及び／又は取り外し可能ストレージデバイス又はドライブ５１４を含んでもよい。メインストレージドライブ５１２は、例えばハードディスクドライブ又はソリッドステートドライブであってもよい。取り外し可能ストレージドライブ５１４は、フロッピーディスクドライブ、磁気テープドライブ、コンパクトディスクドライブ、光ストレージデバイス、テープバックアップデバイス及び／又は他のストレージデバイス／ドライブであってよい。
【０１００】
取り外し可能ストレージドライブ５１４は、取り外し可能ストレージユニット５１８と対話してよい。取り外し可能ストレージユニット５１８は、その上に記憶されたコンピュータソフトウェア（制御ロジック）及び／又はデータを有するコンピュータ使用可能又は読取可能ストレージデバイスを含んでもよい。取り外し可能ストレージユニット５１８は、フロッピーディスク、磁気テープ、コンパクトディスク、ＤＶＤ、光ストレージディスク及び／又は任意の他のコンピュータデータストレージデバイスであってもよい。取り外し可能ストレージドライブ５１４は、取り外し可能ストレージユニット５１８との間で読み取り及び／又は書き込みを行うことができる。
【０１０１】
二次メモリ５１０は、コンピュータプログラム及び／又は他の命令及び／又はデータがコンピュータシステム５００によってアクセスされることを可能にするための他の手段、デバイス、コンポーネント、機器又は他のアプローチを含んでもよい。そのような手段、デバイス、コンポーネント、機器又は他のアプローチは、例えば取り外し可能ストレージユニット５２２及びインタフェース５２０を含んでもよい。取り外し可能ストレージユニット５２２及びインタフェース５２０の例は、プログラムカートリッジ及びカートリッジインタフェース（ビデオゲームデバイスで見られるようなもの等）、取り外し可能メモリチップ（ＥＰＲＯＭ又はＰＲＯＭ等）及び関連ソケット、メモリスティック及びＵＳＢポート、メモリカード及び関連メモリカードスロット及び／又は他の取り外し可能ストレージユニット及び関連インタフェースを含んでもよい。
【０１０２】
コンピュータシステム５００は、通信又はネットワークインタフェース５２４を更に含んでもよい。通信インタフェース５２４は、コンピュータシステム５００が、（個々に、そして集合的に参照番号５２８によって参照される）外部デバイス、外部ネットワーク、外部エンティティ等の任意の組合せと通信して対話することを可能にする。例えば通信インタフェース５２４は、コンピュータシステム５００が、通信パス５２６を介して外部又はリモートデバイス５２８と通信することを可能にする。通信パス５２６は、有線及び／又は無線（又はそれらの組合せ）であってもよく、ＬＡＮ、ＷＡＮ、インターネット等の任意の組合せを含んでもよい。制御ロジック及び／又はデータは、コンピュータシステム５００へ及びコンピュータシステム５００から通信パス５２６を介して送信されてよい。
【０１０３】
コンピュータシステム５００はまた、いくつかの非限定的な例を挙げると、パーソナル・デジタル・アシスタント（ＰＤＡ）、デスクトップ・ワークステーション、ラップトップ又はノートブックコンピュータ、ネットブック、タブレット、スマートフォン、スマート・ウォッチ又は他のウェアラブル、アプライアンス、モノのインターネット（ＩｏＴ）の一部及び／又は組み込みシステム、あるいはこれらの任意の組合せのいずれかであってもよい。
【０１０４】
コンピュータシステム５００は、任意の配信パラダイムを介して任意のアプリケーション及び／又はデータにアクセス又はこれをホストする、クライアント又はサーバであってよい。そのような配信パラダイムは、これらに限られないが、リモート又は分散クラウド・コンピューティング・ソリューション；ローカル又はオンプレミス・ソフトウェア（例えば「オンプレミス」クラウド・ベースのソリューション）；「アズ・ア・サービス（ａｓ  ａ  ｓｅｒｖｉｃｅ）」モデル（例えばコンテンツ・アズ・ア・サービス（ＣａａＳ）、デジタルコンテンツ・アズ・ア・サービス（ＤＣａａＳ）、ソフトウェア・アズ・ア・サービス（ＳａａＳ）、管理ソフトウェア・アズ・ア・サービス（ＭＳａＳ）、プラットフォーム・アズ・ア・サービス（ＰａａＳ）、デスクトップ・アズ・ア・サービス（ＤａａＳ）、フレームワーク・アズ・ア・サービス（ＦａａＳ）、バックエンド・アズ・ア・サービス（ＢａａＳ）、モバイルバックエンド・アズ・ア・サービス（ＭＢａａＳ）、インフラストラクチャ・アズ・ア・サービス（ＩａａＳ）、データベース・アズ・ア・サービス（ＤＢａａＳ）；及び／又は上記の例又は他のサービス又は配信パラダイムの任意の組合せを含む、ハイブリッド・モデルを含む。
【０１０５】
任意の適用可能なデータ構造、ファイルフォーマット及びスキーマは、これらに限られないが、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ（登録商標）Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ））、ＹＡＭＬ（Ｙｅｔ  Ａｎｏｔｈｅｒ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＸＨＴＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＷＭＬ（Ｗｉｒｅｌｅｓｓ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＭｅｓｓａｇｅＰａｃｋ、ＸＵＬ（ＸＭＬ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｌａｎｇｕａｇｅ）又は他の任意の機能的に類似した表現を単独で又は組合せで含む規格から導出されてよい。あるいは、専用のデータ構造、フォーマット又はスキーマが排他的に、あるいは既知の又はオープンの規格との組合せで使用されてもよい。
【０１０６】
任意の関連するデータ、ファイル及び／又はデータベースは、他の可能なフォーマットの中でも特に、数値、テキスト、グラフィック又はマルチメディアフォーマットのような人間が読むことができるフォーマットで記憶、検索、アクセス及び／又は送信されてよく、更には様々なタイプのマークアップ言語を含んでもよい。代替的に又は上記のフォーマットと組み合わせて、データ、ファイル及び／又はデータベースは、バイナリ、エンコード、圧縮及び／又は暗号化フォーマットで、あるいは任意の他の機械読み取り可能フォーマットで記憶、検索、アクセス及び／又は送信されてよい。
【０１０７】
種々のシステム及び層間のインタフェース又は相互接続は、任意の数のプロトコル、プログラムフレームワーク、フロアプラン又はアプリケーション・プログラミング・インタフェース（ＡＰＩ）のような任意の数のメカニズムを用いることができ、これらには限定されないが、ＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）、ＤＳ（Ｄｉｓｃｏｖｅｒｙ  Ｓｅｒｖｉｃｅ）、ＮＳＵｅｒＤｅｆａｕｌｔｓ、ＷＳＤＬ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）、ＭＥＰ（Ｍｅｓｓａｇｅ  Ｅｘｃｈａｎｇｅ  Ｐａｔｔｅｒｎ）、ＷＤＤＸ（Ｗｅｂ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｅｘｃｈａｎｇｅ）、ＷＨＡＴＷＧ（Ｗｅｂ  Ｈｙｐｅｒｔｅｘｔ  Ａｐｐｌｉｃａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐ）、ＨＴＭＬ５  Ｗｅｂ  Ｍｅｓｓａｇｉｎｇ、ＲＥＳＴ（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ）、ＸＵＰ（Ｅｘｔｅｎｓｉｂｌｅ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｐｒｏｔｏｃｏｌ）、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓｓ  Ｐｒｏｔｏｃｏｌ）、ＸＳＤ（ＸＭＬ  Ｓｃｈｅｍａ  Ｄｅｆｉｎｉｔｉｏｎ）、ＸＭＬ−ＲＰＣ（ＸＭＬ  Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）又は同様の機能及び結果を達成することができる任意の他の機構、オープン又は専用を含む。
【０１０８】
このようなインタフェース又は相互接続は、ユニフォームリソース識別子（ＵＲＩ）も使用してよく、これはユニフォームリソースロケータ（ＵＲＬ）又はユニフォームリソース名（ＵＲＭ）を更に含んでもよい。むことができる。他の形態のユニフォーム及び／又は一意の識別子、ロケータ又は名前が排他的に、あるいは上記の形態等との組合せで使用されてよい。
【０１０９】
上記のプロトコルやＡＰＩはいずれも、任意のプログラミング言語、プロシージャ、関数又はオブジェクト指向とインタフェースするか、これらで実装されてもよく、コンパイル又は解釈されてよい。非限定的な例としては、多くの他の非限定的な例の中でも特に、Ｃ、Ｃ＋＋、Ｃ＃、Ｏｂｊｅｃｔｉｖｅ−Ｃ、Ｊａｖａ（登録商標）、Ｓｗｉｆｔ、Ｇｏ、Ｒｕｂｙ、Ｐｅｒｌ、Ｐｙｔｈｏｎ、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＷｅｂＡｓｓｅｍｂｌｙ、あるいは、これらに限定されないが、Ｎｏｄｅ．ｊｓ、Ｖ８、Ｋｎｏｃｋｏｕｔ、ｊＱｕｅｒｙ、Ｄｏｊｏ、Ｄｉｊｉｔ、ＯｐｅｎＵＩ５、ＡｎｇｕｌａｒＪＳ、Ｅｘｐｒｅｓｓ．ｊｓ、Ｂａｃｋｂｏｎｅ．ｊｓ、Ｅｍｂｅｒ．ｊｓ、ＤＨＴＭＬＸ、Ｖｕｅ、Ｒｅａｃｔ、Ｅｌｅｃｔｒｏｎ等を含め、任意の他のライブラリ又はスキーマを有する任意の種類のフレームワーク、ランタイム環境、仮想マシン、インタプリタ、スタック、エンジン又は同様のメカニズムの仮想的な任意の他の言語を含む。
【０１１０】
いくつかの実施形態において、その上に記憶された制御ロジック（ソフトウェア）を有する、有形の非一時的な装置、あるいは有形の非一時的なコンピュータ使用可能又は読取可能な媒体を含む製品は、本明細書において、コンピュータプログラム製品又はプログラムストレージデバイスと呼ばれることがある。これには、コンピュータシステム５００、メインメモリ５０８、二次メモリ５１０及び取り外し可能ストレージユニット５１８及び５２２、並びに上記のいずれかの組み合わせを具体化する有形物品が含まれるが、これらに限定されない。そのような制御ロジックは、１つ以上のデータ処理デバイス（コンピュータシステム５００等）によって実行されると、そのようなデータ処理デバイスに本明細書で説明されるように動作させることができる。
【０１１１】
本開示に含まれる教示に基づいて、図５に示されているもの以外のデータ処理デバイス、コンピュータシステム及び／又はコンピュータ・アーキテクチャを用いて、本開示の実施形態をどのように作成して使用するかは、当業者には明らかであろう。特に、実施形態は、本明細書で説明されるもの以外のソフトウェア、ハードウェア及び／又はオペレーティングシステムの実装で動作することもある。
【０１１２】
結論
詳細な説明のセクションは、他のセクションではなく、請求項を解釈するために使用されるよう意図されていることが理解されるべきである。他のセクションは、本発明者によって考慮される必ずしもすべての例示の実施形態ではなく、その１つ以上を説明している可能性があり、したがって、本開示又は添付の特許請求の範囲を何らかの形で制限するようにも意図されていない。
【０１１３】
本開示は、例示的な分野及び用途の例示的な実施形態を記載しているが、本開示はそれに限定されないことを理解されたい。他の実施形態及びそれに対する修正が可能であり、本開示の範囲及び精神内にある。例えばこの段落の一般性を制限することなく、実施形態は、図面に示される及び／又は本明細書に記載されるソフトウェア、ハードウェア、ファームウェア及び／又はエンティティに限定されない。さらに、実施形態（本明細書に明示的に記載されているか否かにかかわらず）は、本明細書に記載されている実施例を超える分野及び用途に対して有意な有用性を有する。
【０１１４】
本明細書では、実施形態は、特定の機能の実装及びそれらの関係を示す機能的構成ブロックを用いて説明されている。これらの機能的構成要素の境界は、本説明の便宜上、本明細書中で任意に定義されている。特定の機能及び関係（又はそれらに相当するもの）が適切に実行される限り、代替境界が定義されてもよい。また、代替の実施形態は、本明細書に記載されるものとは異なる順序を使用して、機能ブロック、ステップ、動作、方法等を実行してもよい。
【０１１５】
本明細書において、「一実施形態」、「ある実施形態」、「例示の実施形態」、「いくつかの実施形態」又は同様のフレーズへの言及は、説明される実施形態が特定の特徴、構造又は特性を含み得るが、必ずしもすべての実施形態がその特定の特徴、構造又は特性を含み得るとは限らないことを示す。なお、そのようなフレーズは、必ずしも同一の実施形態を指すものではない。
【０１１６】
さらに、特定の特徴、構造又は特性が実施形態に関連して説明されるとき、そのような特徴、構造又は特性を、本明細書に明示的に記載又は説明されているか否かにかかわらず、他の実施形態に組み込むことは、当業者の知識の範囲内であろう。加えて、いくつかの実施形態は、「結合された」及び「接続された」という表現をそれらの派生語とともに用いて説明されることがある。これらの用語は、必ずしも互いに同義語として意図されているわけではない。例えばいくつかの実施形態は、２つ以上の要素が互いに直接的に物理的又は電気的に接触していることを示すために、「接続された」及び／又は「結合された」という用語を使用して説明されることがある。しかしながら、「結合された」という用語は、２つ以上の要素が互いに直接接触していないが、依然として互いに協力又は相互作用していることも意味することがある。
【０１１７】
本開示の広さび範囲は、上述の例示的な実施形態のいずれによっても制限されるべきではなく、以下の特許請求の範囲及びそれらの均等物のみに従って定義されるべきである。
【図１】
2020126649.tif 000003
【図２】
2020126649.tif 000004
【図３】
2020126649.tif 000005
【図４】
2020126649.tif 000006
【図５】
2020126649.tif 000007
【外国語明細書】
2020126649000001.pdf