(57)【要約】      （修正有）【課題】ウェブアプリケーションの国際化及びローカライゼーション技術を提供する。【解決手段】暫定ローカライゼーションキット内のタグをローカライゼーションエキスパートに提示し、キットに対してタグ名規定強制ツールを実行するように構成可能なサニタイゼーション及び例外生成ツールセットを提供する。タグ名規定強制ツールは、抽出されたタグを解析し、キー名文字列及び翻訳可能テキストの位置を特定し、有効なキーワードのリストからキー命名ルールを適用する。ツールセットは、タグ例外からバグレポートスタブを作成し、例外をトリガしたキー名に関して、完成バグレポートに含めるためにエキスパートからのさらなるコメントを受け入れ、開発者による処理のために受信されたキー名と編集された翻訳可能テキストとを使用してサニタイゼーション訂正ファイルを生成する。また、言語パックのデバッグをサポートするコンテキスト内検証ツールを含む。【選択図】図１
2018185809.tif 000002
【特許請求の範囲】
【請求項１】
テキストの翻訳を保持する言語パックのデバッギングをサポートするコンテキスト内検証ツールであって、前記テキストはウェブアプリパネルからソース言語タグに抽出され、前記翻訳はソース言語から複数のターゲット言語に進み、翻訳ターゲット言語タグが、これらが抽出された前記ウェブアプリパネルに論理的又は物理的に戻されマージされ、前記コンテキスト内検証ツールは、
ウェブアプリパネルを監査して、選択されたターゲット言語への翻訳を、
ウェブアプリパネル上で、前記ウェブアプリパネル内にレンダリングするテキストを識別することと、
各々の識別されたテキストが、翻訳のために抽出可能であったソース言語タグに含まれたかどうかを決定することと、
各ソース言語タグの処理が、翻訳の後に前記ウェブアプリパネルに論理的又は物理的に戻されマージされたターゲット言語タグを作り出したかどうかを決定することと、
翻訳の後に前記ウェブアプリパネルに戻されマージされた識別されたテキストのインスタンスと、翻訳の前にそれぞれのソース言語タグに存在した補足的なソースタグ情報とをリンクするアクセスを提供することと、
により検証し、
前記選択されたターゲット言語でウェブアプリパネルの表示をさせることであって、各ウェブアプリパネルは、見られたとき、前記ウェブアプリパネル上のいずれの識別されたテキストが抽出されなかったか、いずれの抽出されたテキストが翻訳されなかったか、及びいずれの抽出されたテキストが翻訳の後に前記ウェブアプリパネルに戻されマージされたかを視覚的に示すようにエンコードされ、
前記ウェブアプリパネル上の特定の識別されたテキストの前記補足的なソースタグ情報の表示をさせることであって、前記補足的なソースタグ情報は、
前記ソース言語タグが属するバンドル、
前記ソース言語タグに割り当てられたキー名、及び、
前記ソース言語における翻訳可能テキスト
を少なくとも含む
ように構成可能なコンテキスト内検証ツールを実現するプロセッサ上で実行するコード、
を含む、コンテキスト内検証ツール。
【請求項２】
前記ウェブアプリパネル上に前記補足的なソースタグ情報の表示をさせた後、ユーザから翻訳テキスト訂正を受信することと、
前記選択されたターゲット言語において、前記ウェブアプリパネルにおける使用のために前記翻訳テキスト訂正を持続することと、
をさらに含む請求項１に記載のコンテキスト内検証ツール。
【請求項３】
前記翻訳テキスト訂正を受け入れる訂正入力エリアの表示をさせること、をさらに含む請求項２に記載のコンテキスト内検証ツール。
【請求項４】
前記翻訳テキスト訂正を持続することは、コンピュータ支援翻訳ツールによりインポート可能なフォーマットで前記翻訳テキスト訂正を保存することを含む、請求項２に記載のコンテキスト内検証ツール。
【請求項５】
前記翻訳テキスト訂正を持続することは、前記ウェブアプリパネルにより使用される前記翻訳ターゲット言語タグ内の前記識別されたテキストを更新することと、前記更新された翻訳ターゲット言語タグを持続することとを含む、請求項２に記載のコンテキスト内検証ツール。
【請求項６】
前記ウェブアプリパネルを変更することなく前記ウェブアプリパネルにオーバーレイするフローティングウィンドウに前記補足的なソースタグ情報の表示をさせること、をさらに含む請求項１に記載のコンテキスト内検証ツール。
【請求項７】
前記補足的なソースタグ情報のために確保されたエリアに前記補足的なソースタグ情報の表示をさせること、をさらに含む請求項１に記載のコンテキスト内検証ツール。
【請求項８】
各ウェブアプリパネルは、識別されたテキストの部分の翻訳の後、前記識別されたテキスト内に現れる前記ソース言語における自然言語文字列を、前記ターゲット言語における文字列と共に視覚的に示すようにさらにエンコードされる、請求項１に記載のコンテキスト内検証ツール。
【請求項９】
前記選択された言語について、前記ウェブアプリパネルに対する変更にわたり反復し、人間の視覚的検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字が前記ウェブアプリパネルを破壊しないことを検証する
ように構成可能な回帰ツールセットを実現するプロセッサ上で実行するコード、
をさらに含む請求項１に記載のコンテキスト内検証ツール。
【請求項１０】
前記選択された言語について、前記ウェブアプリパネルに対する変更にわたり反復し、機械検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字が前記ウェブアプリパネルを破壊しないことを検証する
ように構成可能な回帰ツールセットを実現するプロセッサ上で実行するコード、
をさらに含む請求項１に記載のコンテキスト内検証ツール。
【請求項１１】
テキストの翻訳を保持する言語パックのデバッギングのサポートの方法であって、前記テキストはウェブアプリパネルからソース言語タグに抽出され、前記翻訳はソース言語から複数のターゲット言語に進み、翻訳ターゲット言語タグが、これらが抽出された前記ウェブアプリパネルに論理的又は物理的に戻されマージされ、前記方法は、
ウェブアプリパネルを監査して、選択されたターゲット言語への翻訳を、
ウェブアプリパネル上で、前記ウェブアプリパネル内にレンダリングするテキストを識別することと、
各々の識別されたテキストが、翻訳のために抽出可能であったソース言語タグに含まれたかどうかを決定することと、
各ソース言語タグの処理が、翻訳の後に前記ウェブアプリパネルに論理的又は物理的に戻されマージされたターゲット言語タグを作り出したかどうかを決定することと、
翻訳の後に前記ウェブアプリパネルに戻されマージされた識別されたテキストのインスタンスと、翻訳の前にそれぞれのソース言語タグに存在した補足的なソースタグ情報とをリンクするアクセスを提供することと、
により検証し、
前記選択されたターゲット言語でウェブアプリパネルの表示をさせることであって、各ウェブアプリパネルは、見られたとき、前記ウェブアプリパネル上のいずれの識別されたテキストが抽出されなかったか、いずれの抽出されたテキストが翻訳されなかったか、及びいずれの抽出されたテキストが翻訳の後に前記ウェブアプリパネルに戻されマージされたかを視覚的に示すようにエンコードされ、
前記ウェブアプリパネル上の特定の識別されたテキストの前記補足的なソースタグ情報の表示をさせることであって、前記補足的なソースタグ情報は、
前記ソース言語タグが属するバンドル、
前記ソース言語タグに割り当てられたキー名、及び、
前記ソース言語内の翻訳可能テキスト
を少なくとも含む
ように構成可能なコンテキスト内検証ツールを実現するプロセッサ上で実行するコード
を含む方法。
【請求項１２】
前記ウェブアプリパネル上に前記補足的なソースタグ情報の表示をさせた後、ユーザから翻訳テキスト訂正を受信することと、
前記選択されたターゲット言語において、前記ウェブアプリパネルにおける使用のために前記翻訳テキスト訂正を持続することと、
をさらに含む請求項１１に記載の方法。
【請求項１３】
前記翻訳テキスト訂正を受け入れる訂正入力エリアの表示をさせること、をさらに含む請求項１２に記載の方法。
【請求項１４】
前記翻訳テキスト訂正を持続することは、コンピュータ支援翻訳ツールによりインポート可能なフォーマットで前記翻訳テキスト訂正を保存することを含む、請求項１２に記載の方法。
【請求項１５】
前記翻訳テキスト訂正を持続することは、前記ウェブアプリパネルにより使用される前記翻訳ターゲット言語タグ内の前記識別されたテキストを更新することと、前記更新された翻訳ターゲット言語タグを持続することとを含む、請求項１２に記載の方法。
【請求項１６】
前記ウェブアプリパネルを変更することなく前記ウェブアプリパネルにオーバーレイするフローティングウィンドウに前記補足的なソースタグ情報の表示をさせること、をさらに含む請求項１１に記載の方法。
【請求項１７】
前記補足的なソースタグ情報のために確保されたエリアに前記補足的なソースタグ情報の表示をさせること、をさらに含む請求項１１に記載の方法。
【請求項１８】
各ウェブアプリパネルは、識別されたテキストの部分の翻訳の後、前記識別されたテキスト内に現れる前記ソース言語における自然言語文字列を、前記ターゲット言語における文字列と共に視覚的に示すようにさらにエンコードされる、請求項１１に記載の方法。
【請求項１９】
前記選択された言語について、前記ウェブアプリパネルに対する変更にわたり反復することと、人間の視覚的検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字が前記ウェブアプリパネルを破壊しないことを検証することと、をさらに含む請求項１１に記載の方法。
【請求項２０】
前記選択された言語について、前記ウェブアプリパネルに対する変更にわたり反復することと、機械検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字が前記ウェブアプリパネルを破壊しないことを検証することと、をさらに含む請求項１１に記載の方法。
【請求項２１】
非一時的コンピュータ読取可能媒体であって、該媒体にロードされたプログラム命令を含み、前記プログラム命令はコンピュータハードウェアと組み合わせられ実行されたときに、テキストの翻訳を保持する言語パックのデバッギングのサポートの方法を実現し、前記テキストはウェブアプリパネルからソース言語タグに抽出され、前記翻訳はソース言語から複数のターゲット言語に進み、翻訳ターゲット言語タグが、これらが抽出された前記ウェブアプリパネルに論理的又は物理的に戻されマージされ、前記方法は、
ウェブアプリパネルを監査して、選択されたターゲット言語への翻訳を、
ウェブアプリパネル上で、前記ウェブアプリパネル内にレンダリングするテキストを識別することと、
各々の識別されたテキストが、翻訳のために抽出可能であったソース言語タグに含まれたかどうかを決定することと、
各ソース言語タグの処理が、翻訳の後に前記ウェブアプリパネルに論理的又は物理的に戻されマージされたターゲット言語タグを作り出したかどうかを決定することと、
翻訳の後に前記ウェブアプリパネルに戻されマージされた識別されたテキストのインスタンスと、翻訳の前にそれぞれのソース言語タグに存在した補足的なソースタグ情報とをリンクするアクセスを提供することと、
により検証するステップと、
前記選択されたターゲット言語でウェブアプリパネルの表示をさせるステップであって、各ウェブアプリパネルは、見られたとき、前記ウェブアプリパネル上のいずれの識別されたテキストが抽出されなかったか、いずれの抽出されたテキストが翻訳されなかったか、及びいずれの抽出されたテキストが翻訳の後に前記ウェブアプリパネルに戻されマージされたかを視覚的に示すようにエンコードされる、ステップと、
前記ウェブアプリパネル上の特定の識別されたテキストの前記補足的なソースタグ情報の表示をさせるステップであって、前記補足的なソースタグ情報は、
前記ソース言語タグが属するバンドル、
前記ソース言語タグに割り当てられたキー名、及び、
前記ソース言語内の翻訳可能テキスト
を少なくとも含む、ステップと、
を含む、非一時的コンピュータ読取可能媒体。
【請求項２２】
前記方法は、
前記ウェブアプリパネル上に前記補足的なソースタグ情報の表示をさせた後、ユーザから翻訳テキスト訂正を受信するステップと、
前記選択されたターゲット言語において、前記ウェブアプリパネルにおける使用のために前記翻訳テキスト訂正を持続するステップと、
をさらに含む請求項２１に記載の非一時的コンピュータ読取可能媒体。
【請求項２３】
前記翻訳テキスト訂正を持続するステップは、前記ウェブアプリパネルにより使用される前記翻訳ターゲット言語タグ内の前記識別されたテキストを更新するステップと、前記更新された翻訳ターゲット言語タグを持続するステップとを含む、請求項２１に記載の非一時的コンピュータ読取可能媒体。
【請求項２４】
各ウェブアプリパネルは、識別されたテキストの部分の翻訳の後、前記識別されたテキスト内に現れる前記ソース言語における自然言語文字列を、前記ターゲット言語における文字列と共に視覚的に示すようにさらにエンコードされる、請求項２１に記載の非一時的コンピュータ読取可能媒体。
【請求項２５】
前記方法は、前記選択された言語について、前記ウェブアプリパネルに対する変更にわたり反復するステップと、人間の視覚的検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字が前記ウェブアプリパネルを破壊しないことを検証するステップと、をさらに含む請求項２１に記載の非一時的コンピュータ読取可能媒体。
【請求項２６】
人間のローカライゼーションエキスパートによるサニタイゼーション及び例外生成のために、暫定ローカライゼーションキットにおいて、ウェブアプリケーションのコードベースから抽出された、翻訳のためのテキストのタグを提示し、
前記暫定ローカライゼーションキットに対してタグ名規定強制ツールを実行して、前記タグを解析してキー名文字列及び翻訳可能テキストを抽出し、次いで、前記抽出されたキー名文字列を、
有効なキーワードのリストからの少なくとも１つのキーワードの存在を必要とし、かつ
キー一意性を必要とする
キー命名ルールを使用して立証し、
前記人間のローカライゼーションエキスパートによる完成のために少なくとも１つのバグレポートスタブを作成することであって、
前記バグレポートスタブ内に、前記キー名文字列を立証するために前記キー命名ルールを使用して生成されたタグ例外からのコンテキストを含み、かつ
前記例外をトリガした前記キー名に関して、前記バグレポートスタブに追加するために前記人間のローカライゼーションエキスパートからさらなるコメントを受け入れ、
前記人間のローカライゼーションエキスパートからの前記翻訳可能テキストに対する編集を受け入れ、
開発者が前記ウェブアプリケーションの前記コードベースにマージするように、受信された前記キー名と編集された翻訳可能テキストとを使用してサニタイゼーション訂正ファイルを生成する
ように構成可能なサニタイゼーション及び例外生成ツールセットを実現するプロセッサ上で実行するコード、
を含むツールセット。
【請求項２７】
キー一意性は、特定のキー名を有するすべてのタグがマッチする翻訳可能テキストを共有するとき満たされる、請求項２６に記載のツールセット。
【請求項２８】
前記有効なキーワードは、自然言語における発話の一部に一貫してマッチする、請求項２６に記載のツールセット。
【請求項２９】
前記有効なキーワードは、翻訳可能テキストが抽出されたところにマッチするＧＵＩ要素コンテキストを提供する、請求項２６に記載のツールセット。
【請求項３０】
ＧＵＩ要素コンテキストの前記キー名は、翻訳可能テキストが翻訳されるべきターゲット自然言語における文法形式を指定するスタイルガイドを呼び出す、請求項２６に記載のツールセット。
【請求項３１】
前記キー名は、モジュール名と、前記翻訳可能テキストが抽出されたＧＵＩ要素とのコンテキストを含む、請求項２６に記載のツールセット。
【請求項３２】
開発者によるマージの後に前記コードベースから抽出された、前記暫定ローカライゼーションキットとマージ後のサニタイズされたローカライゼーションキットとを使用して、キットバージョンを比較するように構成可能なマージ後サニタイゼーションチェックツールを実現する前記プロセッサ上で実行するコード、をさらに含み、前記マージ後サニタイゼーションチェックツールは、選択された暫定ローカライゼーションキットを前記サニタイズされたローカライゼーションキットと比較する変更確認ツールを実行し、
前記暫定ローカライゼーションキット及び前記サニタイズされたローカライゼーションキット内のファイルの総数をカウントし、比較し、レポートし、
前記暫定ローカライゼーションキット及び前記マージ後のサニタイズされたローカライゼーションキット内の対応するファイル間でキーコンテンツの差を比較し、レポートし、
前記暫定ローカライゼーションキット及び前記サニタイズされたローカライゼーションキット内の対応するファイル間で値のパラメータの差を比較し、レポートし、
前記マージ後のサニタイズされたローカライゼーションキットの承認の後、最終的なローカライゼーションキットを生成して翻訳者に送信する、
請求項２６に記載のツールセット。
【請求項３３】
前記暫定ローカライゼーションキット及び前記マージ後のサニタイズされたローカライゼーションキットの各々において、別個のフォルダとして、
前記コードベースからの抽出のフルセットの、フルフォルダ、
前記コードベースからの前の抽出の後に変わったタグの抽出の、変更フォルダ、及び
前記前の抽出が行われたときに前記コードベースに存在しなかったタグの抽出の、新規フォルダ、
をさらに含む請求項３２に記載のツールセット。
【請求項３４】
前記マージ後サニタイゼーションチェックツールは、訂正についてカウントすること及び比較することからの例外を反復的にレポートし、次いで、更新されたサニタイズされたローカライゼーションキットに対してカウントすること及び比較することを繰り返すようにさらに構成可能である、請求項３２に記載のツールセット。
【請求項３５】
ウェブアプリケーションのコードベースから抽出された、少なくともキー名と元の言語における翻訳可能テキスト文字列とを有するタグを含む最終的なローカライゼーションキットを人間の翻訳者に転送し、
前記人間の翻訳者から、追加された翻訳されたテキスト文字列を有する前記抽出されたタグを含む翻訳されたキットを受信し、前記翻訳されたキットを人間のローカライゼーションエキスパートに提示し、
前記翻訳されたキットを前記最終的なローカライゼーションキットと比較する変更確認ツールを実行し、
前記最終的なローカライゼーションキットと共に前記翻訳されたキット内のファイルの総数をカウントし、比較し、レポートし、
前記最終的なローカライゼーションキットと共に前記翻訳されたキット内の対応するファイル間のキーコンテンツの差を比較し、レポートし、かつ
前記最終的なローカライゼーションキットと共に前記翻訳されたキット内の対応するファイル間の値のパラメータの差を比較し、レポートし、
前記人間のローカライゼーションエキスパートからの前記翻訳可能テキストに対する編集を受け入れ、
最終的な翻訳されたキットを持続ストレージにコミットする
ように構成可能な翻訳検証ツールセットを実現するプロセッサ上で実行するコード、
を含むツールセット。
【請求項３６】
前記最終的なローカライゼーションキットの改訂されたバージョンを転送すること、
前記翻訳されたキットの改訂されたバージョンを受信すること、
前記変更確認ツールを実行すること、及び、
前記翻訳可能テキストに対する編集を受け入れること
にわたり反復することと、
前記最終的な翻訳されたキットのコミットに至ることと、
をさらに含む請求項３５に記載のツールセット。
【請求項３７】
前記最終的なローカライゼーションキット及び前記翻訳されたキットの各々において、別個のフォルダとして、
前記コードベースからの抽出のフルセットの、フルフォルダ、
前記コードベースからの前の抽出の後に変わったタグの抽出の、変更フォルダ、及び
前記前の抽出が行われたときに前記コードベースに存在しなかったタグの抽出の、新規フォルダ、
をさらに含む請求項３５に記載のツールセット。
【請求項３８】
人間のローカライゼーションエキスパートによるサニタイゼーション及び例外生成のために、暫定ローカライゼーションキットにおいて、ウェブアプリケーションのコードベースから抽出された、翻訳のためのテキストのタグを提示し、
前記暫定ローカライゼーションキットに対してタグ名規定強制ツールを実行して、前記タグを解析してキー名文字列及び翻訳可能テキストを抽出し、次いで、前記抽出されたキー名文字列を、
有効なキーワードのリストからの少なくとも１つのキーワードの存在を必要とし、かつ
キー一意性を必要とする
キー命名ルールを使用して立証し、
前記人間のローカライゼーションエキスパートによる完成のために少なくとも１つのバグレポートスタブを作成することであって、
前記バグレポートスタブ内に、前記キー名文字列を立証するために前記キー命名ルールを使用して生成されたタグ例外からのコンテキストを含み、かつ
前記例外をトリガした前記キー名に関して、前記バグレポートスタブに追加するために前記人間のローカライゼーションエキスパートからさらなるコメントを受け入れ、
前記人間のローカライゼーションエキスパートからの前記翻訳可能テキストに対する編集を受け入れ、
開発者が前記ウェブアプリケーションの前記コードベースにマージするように、受信された前記キー名と編集された翻訳可能テキストとを使用してサニタイゼーション訂正ファイルを生成する
ように構成可能なサニタイゼーション及び例外生成ツールセットを実現する方法。
【請求項３９】
キー一意性は、特定のキー名を有するすべてのタグがマッチする翻訳可能テキストを共有するとき満たされる、請求項３８に記載の方法。
【請求項４０】
前記有効なキーワードは、自然言語における発話の一部に一貫してマッチする、請求項３８に記載の方法。
【請求項４１】
ＧＵＩ要素コンテキストの前記キー名は、翻訳可能テキストが翻訳されるべきターゲット自然言語における文法形式を指定するスタイルガイドを呼び出す、請求項３８に記載の方法。
【請求項４２】
開発者によるマージの後に前記コードベースから抽出された、前記暫定ローカライゼーションキットとマージ後のサニタイズされたローカライゼーションキットとを使用して、キットバージョンを比較するように構成可能なマージ後サニタイゼーションチェックツールを実現すること、をさらに含み、前記マージ後サニタイゼーションチェックツールは、選択された暫定ローカライゼーションキットを前記サニタイズされたローカライゼーションキットと比較する変更確認ツールを実行し、
前記暫定ローカライゼーションキット及び前記サニタイズされたローカライゼーションキット内のファイルの総数をカウントし、比較し、レポートし、
前記暫定ローカライゼーションキット及び前記マージ後のサニタイズされたローカライゼーションキット内の対応するファイル間でキーコンテンツの差を比較し、レポートし、
前記暫定ローカライゼーションキット及び前記サニタイズされたローカライゼーションキット内の対応するファイル間で値のパラメータの差を比較し、レポートし、
前記マージ後のサニタイズされたローカライゼーションキットの承認の後、最終的なローカライゼーションキットを生成して翻訳者に送信する、
請求項３８に記載の方法。
【請求項４３】
前記マージ後サニタイゼーションチェックツールは、訂正についてカウントすること及び比較することからの例外を反復的にレポートし、次いで、更新されたサニタイズされたローカライゼーションキットに対してカウントすること及び比較することを繰り返すようにさらに構成可能である、請求項４２に記載の方法。
【請求項４４】
ウェブアプリケーションのコードベースの翻訳において使用されるファイルの訂正を検証する方法であって、
ウェブアプリケーションのコードベースから抽出された、少なくともキー名と元の言語における翻訳可能テキスト文字列とを有するタグを含む最終的なローカライゼーションキットを人間の翻訳者に転送するステップと、
前記人間の翻訳者から、追加された翻訳されたテキスト文字列を有する前記抽出されたタグを含む翻訳されたキットを受信し、前記翻訳されたキットを人間のローカライゼーションエキスパートに提示するステップと、
前記翻訳されたキットを前記最終的なローカライゼーションキットと比較する変更確認ツールを実行し、
前記最終的なローカライゼーションキットと共に前記翻訳されたキット内のファイルの総数をカウントし、比較し、レポートし、
前記最終的なローカライゼーションキットと共に前記翻訳されたキット内の対応するファイル間のキーコンテンツの差を比較し、レポートし、かつ
前記最終的なローカライゼーションキットと共に前記翻訳されたキット内の対応するファイル間の値のパラメータの差を比較し、レポートするステップと、
前記人間のローカライゼーションエキスパートからの前記翻訳可能テキストに対する編集を受け入れるステップと、
最終的な翻訳されたキットを持続ストレージにコミットするステップと、
を含む方法。
【請求項４５】
前記最終的なローカライゼーションキットの改訂されたバージョンを転送すること、
前記翻訳されたキットの改訂されたバージョンを受信すること、
前記変更確認ツールを実行すること、及び、
前記翻訳可能テキストに対する編集を受け入れること
にわたり反復するステップと、
前記最終的な翻訳されたキットをコミットすることに至るステップと、
をさらに含む請求項４４に記載の方法。
【請求項４６】
前記最終的なローカライゼーションキット及び前記翻訳されたキットの各々において、別個のフォルダとして、
前記コードベースからの抽出のフルセットの、フルフォルダ、
前記コードベースからの前の抽出の後に変わったタグの抽出の、変更フォルダ、及び
前記前の抽出が行われたときに前記コードベースに存在しなかったタグの抽出の、新規フォルダ、
をさらに含む請求項４４に記載の方法。
【請求項４７】
非一時的コンピュータ読取可能媒体であって、前記媒体にロードされたプログラム命令を含み、前記命令はコンピュータハードウェアと組み合わせられ、実行されたときに、請求項３８に記載の方法を実現する、非一時的コンピュータ読取可能媒体。
【請求項４８】
非一時的コンピュータ読取可能媒体であって、前記媒体にロードされたプログラム命令を含み、前記命令はコンピュータハードウェアと組み合わせられ、実行されたときに、請求項４２に記載の方法を実現する、非一時的コンピュータ読取可能媒体。
【請求項４９】
非一時的コンピュータ読取可能媒体であって、前記媒体にロードされたプログラム命令を含み、前記命令はコンピュータハードウェアと組み合わせられ、実行されたときに、請求項４４に記載の方法を実現する、非一時的コンピュータ読取可能媒体。
【請求項５０】
非一時的コンピュータ読取可能媒体であって、前記媒体にロードされたプログラム命令を含み、前記命令はコンピュータハードウェアと組み合わせられ、実行されたときに、請求項４５に記載の方法を実現する、非一時的コンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、同時に申請された「WEB  APPLICATION  LOCALIZATION」と題された米国特許出願（Atty.  Docket  No.  SALE  1188-1）に関連する。上記関連出願は、すべての目的について本明細書において参照援用される。
【０００２】
本開示の分野は、国際化（Ｉ１８ｎ）及びローカライゼーション（Ｌ１０ｎ）を介したウェブアプリケーションの要素の正確な翻訳に関し、アプリケーションが異なる言語、地域差、及びターゲット市場ロケールの技術要件を扱うことを可能にする。国際化は、様々な言語及び地域に適合できるようにソフトウェアアプリケーションを設計するプロセスである。ローカライゼーションは、ロケール固有コンポーネントを追加すること及びテキストを翻訳することにより、国際化されたソフトウェアを特定の地域又は言語に適合させるプロセスである。
【０００３】
開示される方法は、ソフトウェアインスタンスに対する複数のテナントのデジタルデータを管理することを含み、複数のテナントの各テナントは、少なくとも１つのアプリケーションのソフトウェアインスタンスに対する特権の特定のセットで一般的アクセスを共有するユーザのグループを含む。
【背景技術】
【０００４】
背景技術セクションで論じられる対象事項は、単に背景技術セクションにおけるその言及の結果として従来技術であると仮定されるべきでない。同様に、背景技術セクションで言及され又は背景技術セクションの対象事項に関連づけられた問題は、従来技術において前に認識されていたと仮定されるべきでない。背景技術セクションにおける対象事項は異なるアプローチを単に表し、これら自体もまた請求される発明の実現に対応し得る。
【０００５】
今日の世界で、数百万人のインターネットユーザを扱い、管理するウェブアプリケーションは、エンドユーザにより必要とされる言語でアプリケーションをグローバルに配信し、インタラクション及びユーザ体験のために効率的な、使用可能なプラットフォームを提供するという挑戦に直面している。
【０００６】
ウェブアプリケーション開発者は、しばしば、ほぼ排他的にプラットフォームの特徴の開発に集中し、開発されているプラットフォームの国際化及びローカライゼーションの要件を良く知らない。しばしば、異なる言語及びロケールを扱うために技術変更なく様々な言語及び地域に適合できるようにソフトウェアアプリケーションを設計することが、ほとんど考慮されない。既存のアプローチでは、しばしば、品質保証（ＱＡ）ステージにおいてのみローカライゼーションに対して開発者が着手する。そのときでさえ、カスタム論理及びサードパーティインテグレーションに関する範囲が、しばしば、開発者にとって不明りょうなままである。言語的品質が信頼できず、用語が一貫性がなく、文体選択がランダムに見えるのは一般的な状況であり、それにより、ウェブサイト又はアプリケーションは、「ネイティブなもの」の代わりに「翻訳されたもの」と感じる。
【０００７】
開発者は、ウェブアプリケーションにおけるＧＵＩ要素の正確な翻訳を効率的にサポートし、アプリケーション及びプラットフォームの設計フェーズの間に国際化及びローカライゼーション要件を満たし、さらに、そのグローバルなユーザに対してネイティブに見える継続的な更新の必要を満たす、より良いアプローチを必要とする。昨今のデータセンタは複雑であり、そのインフラストラクチャは継続的な更新を組み込むことができる必要がある。グローバルデータセンタ（ＤＣ）は、スーパーポッド（super-pods）（ＳＰ）及びデプロイメントポイント（points  of  deployment）（ＰＯＤ）を含むことがある。各ＰＯＤは、マルチテナントサービスで数万の顧客を扱うことができる。各エンドユーザは、異なるロールを含むデプロイメントポイント（ＰＯＤ）に接続され、ウェブサーバと、データベースサーバと、ロギングメトリクスサーバと、データを索引化し顧客データを変換するさらなるサーバとが含まれる。各アプリは、複数の機能ロールを含むことができるサービスを配信する。一例において、認定されたロールが、マーケティング、顧客関係管理、又はユーザインターフェース（ＵＩ）などの１つのサービスを参照する。
【発明の概要】
【０００８】
開示されるシステム及び方法は、国際化されたソフトウェアを特定の地域又は言語に適合させ、ロケール固有コンポーネントを追加し、テキストを翻訳することにより、大規模ウェブサイトを介して配信されるアプリケーションを含むアプリケーションのための、ローカライゼーションを介したウェブアプリケーションにおける要素の正確な及び効率的な翻訳のためのツールを提供する。これらツールは、より高い言語的品質の翻訳されたウェブアプリケーション、ウェブアプリケーションのグローバルなユーザのためのシームレスなネイティブ体験、開発リソースの効率的な使用、プロダクション品質ウェブプラットフォーム又はアプリケーションに対する効率的な翻訳、同時にリリースされる複数のターゲット言語、及びサイト維持のための容易な継続的更新を届けることを可能にする。開示される技術はうまくスケーリングし、４、１４、又は４０の言語を並行してリリースすることができる。
【０００９】
本明細書において、簡素化されたサマリが、より詳細な説明及び添付の図面において下記に続く例示的な、非限定的な実現例の様々な態様の基本的又は一般的理解を可能にするのに役立つように提供される。しかしながら、このサマリは、広い又は網羅的な概要としては意図されない。代わりに、このサマリの専らの目的は、下記に続く様々な実現例のより詳細な説明に対する導入として簡素化された形式でいくつかの例示的な非限定的な実現例に関連したいくつかの概念を提示することである。
【００１０】
開示される技術は、暫定ローカライゼーションキット内のタグを人間のローカライゼーションエキスパートに提示し；暫定ローカライゼーションキットに対してタグ名規定強制ツールを実行する；ように構成可能なタグサニタイゼーションクリーンアップ及び例外生成ツールセットを含み、タグ名規定強制ツールは、抽出されたタグを解析し、キー名文字列及び翻訳可能テキスト（デフォルト、及び、任意選択で元の）の位置を特定し、次いで、有効なキーワードのリストからの少なくとも１つのキーワードの存在を必要とし、かつキー一意性：マッチする値か異なるキーかのいずれかを必要とする、キー命名ルールを適用する。さらに、開示されるツールセットは、人間のローカライゼーションエキスパートによる完成のためにバグレポートスタブを作成し、バグレポートスタブ内に、解析されたキー名文字列にキー命名ルールを適用することにより生成されたタグ例外からのコンテキストを含み、例外をトリガしたキー名に関して、完成バグレポート内に含めるように人間のローカライゼーションエキスパートからのさらなるコメントを受け入れる。ツールキットは、開発者による処理のために、受信されたキー名と編集された翻訳可能テキストとを使用してサニタイゼーション訂正ファイルをさらに生成することができる。
【００１１】
開示される技術の他の態様及び利点が、下記の図面、詳細な説明、及び特許請求の範囲のレビューで分かるであろう。
【図面の簡単な説明】
【００１２】
含まれる図面は例示目的のものであり、本開示の１つ以上の実現例について可能な構造及びプロセス動作の例を単に提供する役割を果たす。これら図面は、本開示の主旨及び範囲から逸脱することなく当業者により行われ得る形式及び詳細のいかなる変更も限定しない。対象事項のより完全な理解が、詳細な説明及び特許請求の範囲を参照することにより、下記の図面と関連して考慮されたとき、導き出され得る。図面において、同様の参照番号は図面全体を通して同様の要素を参照する。
【図１】ウェブアプリケーション内の要素の正確な翻訳のための一環境を例示する。
【図２】複数の言語に対する翻訳のためのウェブアプリケーションフレームワークを準備し、人間の翻訳者に対して転送可能なローカライゼーションキットを作成する一例示的なメッセージフローを示す。
【図３】翻訳者から確定されたローカライゼーションキットの翻訳を受信し、品質保証テスト及び検証を完了し、複数のターゲット言語翻訳を含む言語パックをプロダクションにデプロイする一例示的なメッセージフローを示す。
【図４Ａ】プロパティキー名をこれらが含まなければならないコンテキストワードのセットに対して検証するキー名検証ツールの一例示的なＵＩを示す。
【図４Ｂ】選択されたフォルダ内のプロパティファイルに対してキー名検証ツールを実行することにより生成されたレポートを示す。
【図５】サニタイゼーション訂正ファイルがマージされたサニタイズされたローカライゼーションキットを、元の（ソース）又は暫定のローカライゼーションキットと比較するように構成可能な、一例示的なマージ後サニタイゼーションチェックツールを示す。
【図６Ａ】図５に示されたマージ後サニタイゼーションチェックツールを実行することにより生成されたレポートを示す。
【図６Ｂ】図６Ｂ、図６Ｃ、及び図６Ｄは、ツールを介して識別されたエラーと、エラーが修正された後の結果を示すレポートとの例を示す。
【図６Ｃ】図６Ｂ、図６Ｃ、及び図６Ｄは、ツールを介して識別されたエラーと、エラーが修正された後の結果を示すレポートとの例を示す。
【図６Ｄ】図６Ｂ、図６Ｃ、及び図６Ｄは、ツールを介して識別されたエラーと、エラーが修正された後の結果を示すレポートとの例を示す。
【図７Ａ】サニタイズされたソースローカライゼーションキットを、ターゲット言語に翻訳されかつ翻訳者により配信されたローカライゼーションキットと比較するように構成可能な、一例示的なマージ後サニタイゼーションチェックツールを示す。
【図７Ｂ】図７Ａに示されるマージ後サニタイゼーションチェックツールの結果のレポートを示す。
【図８】ウェブアプリケーションの要素を複数の言語に正確に翻訳するプロセスの概要を示す。
【図９】図９Ａは、翻訳されるべき要素の一例示的なユーザインターフェース（ＵＩ）セグメントを示す。図９Ｂは、図９ＡにおけるウェブアプリケーションのＵＳセグメント内のサイトプリファレンスモジュールの選択の後に視認できるＵＩセグメントを示す。図９Ｃは、イタリア語への翻訳の後の、図９Ａの例示的なＵＩセグメントを示す。図９Ｄは、フランス語への翻訳の後の、図９Ａのウェブアプリケーションからの例示的なＵＩを示す。
【図１０Ａ】英語で表示されたウェブアプリケーションからの一例示的なＡ／Ｂサイトプリファレンスモジュールを示す。
【図１０Ｂ】日本語に翻訳されたＡ／Ｂサイトプリファレンスを示す。
【図１１Ａ】コンピュータ支援翻訳ツール（ＣＡＴ）において翻訳されているテキスト文字列のコンテキスト的位置を識別するための一意キーの一例示的な使用を表示する。
【図１１Ｂ】ＣＡＴにおいて翻訳されているテキスト文字列のコンテキスト的位置を識別するためのキーの第２の例を示す。
【図１２Ａ】翻訳者により配信されたローカライゼーションキットの修正をテストする一比較ツールＵＩを表す。
【図１２Ｂ】修正されたローカライゼーションキットの、フランス語への翻訳の比較のための一例示的なレポートを示す。
【図１２Ｃ】新たにビルドされた言語パックを元の言語パックと比較する一レポートＵＩを示す。
【図１２Ｄ】言語的コンテキスト内テストの前の元の言語パックを最終的な言語パックと比較するＬＶＴから生じた一例示的なレポートを示す。
【図１３】日本語への翻訳のための、デバッグモードの一実現例を示す。
【図１４Ａ】図１３に示されるデバッグモードパネルの、補足的なソースタグ情報を表示する一ビューを示す。
【図１４Ｂ】一実現例における、ＱＡテスタ及び複数の人間の翻訳者によるウォークスルーの間に使用可能な一ヘルプ画面を示す。
【図１５】ウェブアプリケーションの要素を正確に翻訳する環境の一実現例の例示的なワークフローである。
【図１６】ウェブアプリケーションの要素を正確に翻訳するために使用されるハードウェアシステムを実現する一システム環境を示す。
【発明を実施するための形態】
【００１３】
下記の詳細な説明は図面を参照して行われる。サンプルの実現例は、開示された技術の範囲を限定するためでなく該技術を例示するために説明され、上記範囲は、特許請求の範囲により定義される。当業者は、下記の説明に対する様々な均等的変更を認識するであろう。
【００１４】
世界的に、ウェブアプリケーション及びプラットフォームは、国際的に数百万のユーザに対して情報を伝達し、高度なウェブアプリケーションについては千ものページを有する。アプリケーション及びプラットフォームの開発者は、ユーザに情報を提示し、かつユーザから情報を収集するために使用される様々なウェブページフォーマット及びフォームを考慮する必要があり、アドレスフォーム、日付フォーマット、通貨フォーマット、支払い方法、出荷方法、課税、ギフト登録イベント、及び検索キーワードが含まれる。ウェブサイトの複数の言語への翻訳の必要に対処するために、翻訳可能テキストがローカライズされる必要がある。ウェブサイトの不完全な翻訳は、外国の文字が文字化けすること、テキストが切り詰められ、又はページ上で割り振られた空間を越えて出ること、数字が英語フォーマットで現れること、及びユーザインターフェース（ＵＩ）にマッピングするのが困難な文字の、外見的にミスマッチの文字列を結果としてもたらす可能性がある。さらに、文字列の連結及び文字列の再利用は、翻訳における文法的問題を引き起こす可能性がある。数百の開発者がテキストを作成し、すべてがネイティブスピーカーなわけではなく、あるいはアプリケーションＵＩの言語スタイルガイドに従うわけでもない。設計フェーズにおける開発者は、継続的な技術変更なく様々な言語及び地域に適合できるソフトウェアアプリケーションを設計することを可能にする機能的適合を定義するローカライゼーション（Ｌ１０ｎ）要件を考慮する必要がある。国際的に使用されるウェブアプリケーションは、その翻訳も同然であり、該翻訳は、しばしば、コンテキストにおいてテストされない。例えば、１２５の機能モジュールを利用するウェブアプリケーションが、そのコンテンツを配信するために千のウェブページを含み、平均のハリーポッターの小説と同数もの翻訳すべきワード、すなわち約１８０，０００ワードを有し、各テキスト文字列を一意に識別するために約８０００のプロパティキーを必要とすることがある。
【００１５】
時に、言語学者は、後に続くＱＡテストスクリプトを有さず、非システマティックな不備追跡を結果としてもたらす。翻訳メモリは、前に対処された問題を再発することを回避するために、アーカイブされ、後のバージョンの翻訳に伝搬される必要がある。アプリケーション及びプラットフォーム開発者は、翻訳を早期に、しばしば、及びコンテキストにおいてテストする必要があり、上記開発者は、あらゆるローカライゼーション更新をテストし、いくつかの言語を同時にテストし、機能的不備とは別個に言語的問題を追跡する必要がある。
【００１６】
国際的なウェブアプリケーションは、その最初のローカライゼーションの後、単にその次の更新も同然であり、ゆえに、ウェブサイト及びアプリケーション開発者は、Ｌ１０ｎのための維持ストラテジを必要とする。開示されるシステム及び方法は、Ｌ１０ｎプロセスを自動化するツールを含み、開発者はＬ１０ｎ関連（implications）のあらゆる新しい特徴を評価し、新しいキー、ファイル、及びフォルダを一貫して命名し、ファイルのフル（すなわち、すべての）セット、新規（すなわち、前に翻訳されていない）セット、及び変更（すなわち、前に翻訳されたがソーステキストが変更された）セットに編成された翻訳可能物（translatables）のフォルダを有するローカライゼーションキットを作成する。開示される方法は、プロダクション（production）インスタンスに対する最終的なデプロイメントの前、ビルドされた言語パックをステージングした後の、言語的テスト及びバグ修正のための計画をさらに含む。国際化及びローカライゼーションを介して大規模ウェブアプリケーションを複数の言語に正確かつ効率的に翻訳する環境が次に説明される。
【００１７】
環境
図１は、ロケール固有コンポーネントを追加し、テキストを翻訳することにより、国際化されたソフトウェアを特定の地域又は言語に適合させる、大規模ウェブアプリケーションのローカライゼーションのための一環境１００を示す。環境１００は、顧客関係管理（ＣＲＭ）、販売、サービス、マーケティング、データ解析、電子商取引、及びカスタマイズされたアプリケーションのうち１つ以上を含むことができる、プロダクションアプリケーションを有するアプリケーションサーバ１０８を有するマルチテナントプラットフォーム１０６を含む。環境１００は、アプリケーション又はウェブサイトを配信するためのソースコードを有するプラットフォームコードリポジトリ１０２をさらに含む。ソースコード言語には、これらに限られないが、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｊａｖａ（登録商標）、Ｇｏｏｇｌｅ（登録商標）  Ｗｅｂ  Ｔｏｏｌｋｉｔ（ＧＷＴ）、ＩＳＭＬ、メニュー及びフォームが含まれる。一実現例において、ソースコード管理はＧｉｔを使用して実現される。別のケースにおいて、Ｐｅｒｆｏｒｃｅ、Ｓｕｂｖｅｒｓｉｏｎ、又は他のバージョン制御ソフトウェアをリポジトリとして利用できる。ローカライゼーションリポジトリ１０５は、環境１００において、新しい言語のインプロセス（in-process）翻訳及び新しいコードバージョンの更新のために、複数の言語のためのローカライゼーション翻訳のいくつかのバージョンを含む。ローカライゼーションキットが、以下に詳細に説明されるように、翻訳キー及び文字列のフルセットを保持するフォルダと、新たに追加されたキー及び文字列を保持する「新規（new）」フォルダと、ソースコードリリース及び関連づけられた言語パックの前のバージョンの後に変更されたキー及び文字列を保持する「変更（changed）」フォルダとを含む。環境１００は、グローバルに配信されている複数の言語のためのプロダクション準備完了翻訳パックを保持するプロダクション翻訳リポジトリ１５２をさらに含む。一例示的な実現において、日本語、フランス語、中国語、及びイタリア語の言語パックがプロダクション翻訳リポジトリに存在し、上記リポジトリから、言語パックが取り出され、ローカルデスクトップ又はクラウドベースコンピュータ上のウェブアプリケーションにインストールされ得る。１つのユースケースにおいて、Ｎｅｘｕｓリポジトリを利用できる。他のユースケースにおいて、Ｇｉｔ又は他のリポジトリを利用できる。
【００１８】
続いて、環境１００は、抽出ルールが正確に実行されるかどうかを決定し、タグシンタックス、バンドル名、キー名、重複、及びいくつかの引用ルールを検証するためのビルドツール１２２をさらに含む。ビルドツール１２２は、Ｌ１０ｎソースコード検証ツール１２４を使用してテンプレートを調べてエラーが存在するかを決定し、疑わしい及び移植不能な（non-portable）構造、並びに翻訳システムのルールを守らないキー及び文字列にフラグを立てる（flags）。あらゆるキーが、コンテキスト限定子（context  qualifier）としての予約されたキーワードと、それをページ上で一意にするさらなる要素とを使用する。例示的なルールには、各々の区別可能なキーを正確に１回使用することが含まれ、すなわちキーは一意であり、空の文字列は許容されず、バンドルは、正確に２つの部分、すなわちフォルダ名及びファイル名を有する。一実現例において、１つのファイル内のすべてのテキストが単一のバンドル内にあり、このバンドルは単一の翻訳者に進む。ビルドツール１２２にさらに含まれるのは、コードファイルのセットから、コメントを含む、タグ付けされたテキストを抽出するエクストラクタ１３２である。さらに、キーリソースチェッカー（ＫＲＣ）１５８が、環境１００において、コンテキスト的情報として翻訳者にとって意味あるキー命名規定が開発者により守られているかどうかをチェックするタグサニタイゼーション（sanitization）クリーンアップツールであり、以下に詳細に説明されるように、約２０タイプのユーザインターフェース（ＵＩ）をスクリーニングする。
【００１９】
環境１００にさらに含まれるのが、コンピュータのオペレーティングシステムのためのコンピュータプログラムをインストールし、更新し、構成し、除去するプロセスを自動化することができるパッケージマネージャ１４２である。パッケージマネージャ１４２は、ソフトウェアの名前、その目的の説明、バージョン番号、ベンダ、チェックサム、及び、ソフトウェアが正しく実行するのに必要な依存関係のリストなどのメタデータを含むパッケージを扱う。パッケージマネージャ１４２は、ソフトウェア及びデータをアーカイブファイルで配布し、ソフトウェア依存関係及びバージョン情報のデータベースを維持して、ミスマッチ及び必要条件の見落としを防止することができ、手動のインストール及び更新の必要を除外することができる。
【００２０】
環境１００は、抽出されたタグの最初の抽出及びサニタイゼーション後のバージョンを比較するローカライゼーション検証ツール（ＬＶＴ）１１６をさらに含み、ＬＶＴ１１６は、以下に詳細に説明されるように、暫定（preliminary）ローカライゼーションキット及びサニタイズされた（sanitized）ローカライゼーションキットを使用してキットバージョンを比較するように構成可能なマージ後（post-merge）サニタイゼーションチェックツール１１８と、翻訳検証ツール１１９とを含む。一実現例において、ＬＶＴは、ＪＡＶＡプログラミング言語を使用して書かれる。他の実現例において、他のプログラミング言語を使用できる。環境１００は、最初の翻訳の間の、及びソースバージョン対翻訳されたバージョンのウォークスルーの間に使用可能な、個々の翻訳者のデバッギングパス（debugging  pass）のためのデバッグツール１２８をさらに含む。ＱＡによる一例示的な使用において、デバッグツール１２８は、翻訳の後に依然として英語であるいかなるテキストにもフラグを立て、抽出されたが翻訳されていないテキストにフラグを立てる。さらに、環境１００のローカライゼーション回帰（regression）テストツール１４８が、翻訳された要素をウェブアプリケーションと再度組み合わせ、翻訳された要素を含むウェブページを、これらウェブページのレンダリングの自動化されたスキャンで動かす。
【００２１】
環境１００にさらに含まれるユーザコンピューティング装置１５４が、ブラウザＵＩ及びモバイルアプリケーションの双方を介して、開発者、及び翻訳プロセスを管理するために使用するプロセス所有者に対するアクセスを管理するインターフェースを提供する。いくつかの実現例において、ユーザコンピューティング装置１５４は、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、パーソナルデジタルアシスタント（ＰＤＡ）、デジタルイメージ捕捉装置などであり得る。
【００２２】
いくつかの実現例において、環境１００のモジュールは、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、又は任意の他のデータ処理システム若しくはコンピューティング装置を含む様々なタイプのものであり得る。モジュールは、異なるネットワーク接続を介してデータストアに通信可能に結合できる。例えば、マルチテナントプラットフォーム１０６は、ネットワーク１４５（例えば、インターネット）を介して、ダイレクトネットワークリンクに結合されたプロダクション翻訳リポジトリ１５２と結合でき、さらに、ダイレクトリンクを介してプラットフォームコードリポジトリ１０２に結合できる。いくつかの実現例において、ユーザコンピューティング装置１５４は、ＷｉＦｉ（登録商標）ホットスポットを介して接続されてよい。
【００２３】
いくつかの実現例において、ネットワーク１４５は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ＷｉＦｉ、ＷｉＭＡＸ（登録商標）、電話ネットワーク、ワイヤレスネットワーク、ポイントツーポイントネットワーク、スターネットワーク、トークンリングネットワーク、ハブネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）などのピアツーピア接続、近距離通信（ＮＦＣ）、Ｚ−Ｗａｖｅ、ＺｉｇＢｅｅ（登録商標）、又は、インターネットを含むデータネットワークの他の適切な構成のうち、任意の１つ又は任意の組み合わせであり得る。
【００２４】
いくつかの実現例において、データストアは、１つ以上のテナントからの情報を共通データベースイメージのテーブルに記憶して、オンデマンドデータベースサービス（ＯＤＤＳ）を形成することができ、これは、マルチテナントデータベースシステム（ＭＴＤＳ）などの多くの方法で実現できる。データベースイメージは、１つ以上のデータベースオブジェクトを含むことができる。他の実現例において、データベースは、関係データベース管理システム（ＲＤＢＭＳ）、オブジェクト指向データベース管理システム（ＯＯＤＢＭＳ）、分散ファイルシステム（ＤＦＳ）、ノースキーマ（no-schema）データベース、又は任意の他のデータ記憶システム若しくはコンピューティング装置であり得る。
【００２５】
他の実現例において、環境１００は、上記でリストアップされた要素と同じ要素を有さなくてもよく、かつ／あるいは、上記でリストアップされた要素に代わってか又は追加で他の／異なる要素を有してもよい。
【００２６】
開示される技術は、データベースシステム、マルチテナント環境、又は同様のものを含む任意のコンピュータ実現システムの文脈で実現できる。さらに、この技術は、互いに協働し、通信する２つ以上の別個の及び区別可能なコンピュータ実現システムを使用して実現できる。この技術は、プロセス、方法、装置、システム、デバイス、コンピュータ読取可能命令若しくはコンピュータプログラムコードを記憶したコンピュータ読取可能記憶媒体などのコンピュータ読取可能媒体として、又はコンピュータ読取可能プログラムコードを具現化させたコンピュータ使用可能媒体を含むコンピュータプログラムプロダクトとしてを含む、多数の方法で実現できる。
【００２７】
図２は、国際化及び複数の言語への翻訳のためのウェブアプリケーションフレームワークを準備し、所望のターゲット言語への翻訳のために人間の翻訳者２８０に転送可能なローカライゼーションキットを作成する一例示的なワークフロー２００を示す。確定された（finalized）ローカライゼーションキットは、同じ時間間隔の間、必要とされる数のターゲット言語への翻訳のために複数の翻訳者に送信できる。
【００２８】
開発者２１０は、継続的な技術変更なく様々な言語及び地域に適合できるソフトウェアアプリケーションを設計することによりローカライゼーションについて計画し、コード及びテキストを分離し、コードを準備し、テキストの準備を可能にする。リソースバンドルが、各々の一意の文字列について一意のプロパティ値を有するキー値ペア（key-value  pairs）の集合として記憶される。国際化のルールには下記が含まれる：コードからの抽出のためにローカライズ可能／翻訳可能テキストをマーク付けすること、テキストをＵＩテンプレートに移動すること、翻訳可能テキストのためにフルセンテンスを使用すること、及び、次に示されるように、センテンスを形成するためのテキストの連結を回避すること。ワード順序が言語で変わることがあり、数字又は文字列に対して動的に生成された参照のために使用される文字列のパラメータは、コードが実行されるとき、目下の文字列の文法にさらに影響することがある。
"Dear  "+cust.getSalutation()+"  "+cust.getLastName()+",  welcome  back"
【００２９】
国際化のためのルールを続けると、開発者は、単数形使用のために１つの文字列、及び複数形使用のために１つの文字列を作成し、テキストが何に関するか、及びそれが如何にして使用されるかを説明するキーを提供し、テキスト内のＨＴＭＬマークアップを回避し、ユーザのためのデータが正しいロケール内であること、例えば、テーブルヘッダが企業オブジェクトの属性名であるとしてもテーブルヘッダがＵＩロケール内であることを確保する必要がある。テーブルコンテンツは、それが「削除」リンクなどのＵＩの一部であるときを除き、データロケールに属する。
【００３０】
使用されるプログラミング言語及び技術において特殊な意味を有し得る文字で、特殊なケアが行われる必要がある。いくつかのケースにおいて、これは、（文字列リテラルを区切るために使用される）ダブルクォート及びアポストロフィを含み、他のケースにおいて、コロンを含む。こうした文字は、それぞれのプログラミング言語の適切なエスケープシーケンスにより扱われる必要がある。例えば、アポストロフィは、言語ごとに別様に取り扱われ、翻訳の後のテキストに入り、コード機能性変更を取り込むことができる。コロンもまたコードを破壊する可能性がある。
【００３１】
マークアッププロセスの間、開発者２１０は、そのコードベース内に特殊マークアップ及びコードクラスに対する参照を含み、翻訳可能テキストをマーク付けする。これらタグ及びコードクラスに対する参照は、ＵＩのローカライズされたバージョン内に示される必要のあるテキストをマーク付けする。これらは、２つの目的のため、すなわち、実行時、（バンドル及びキーにより定義されたとおり）テキストのローカライズされたバージョンをルックアップするため、及び影響あるファイルからのすべての翻訳対象テキストの自動化された抽出のために使用される。いくつかのケースにおいて、これらは、次に示されるマークアップなどの特殊ＨＴＭＬタグである。
<ISTEXT  bundle="customer.customergroup"  key="field.type.select"  default="Select  type"/>
【００３２】
他のケースにおいて、これらは特殊なＪＳＰタグであり得る。一実現例において、開発者２１０はそのコードベースに、２つのコードクラス、パブリックＡＰＩとしてのLocaleHelperと実装のためのLocalizationHelperとを含み、マークアッププロセスにおいて、及び翻訳を引き込むことにおいて使用されるＩＳＭＳＧモジュールを含むことができる。
<ISINCLUDE  template="inc/Modules">
【００３３】
ＩＳＭＳＧタグは、ＵＩのローカライズされたバージョンに示される必要のあるテキストをマーク付けする。これらのタグの内部に、バンドル及びキー名のパラメータ、及び、ルックアップがいかなるローカライズされたバージョンも見つけることができないときのためのテキストのデフォルトバージョンのパラメータがある。任意選択で、テキストはいくつかのパラメータを指定してよく、該パラメータはその後、さらにタグの一部である。簡素なユースケースが次にリストアップされる。
<ISMSG  bundle="customer.customergroup"  key="field.type.select"  default="Select  Type"/>
【００３４】
このメッセージは、バンドル名からわかるように、ファイルcustomer/CustomerGroup.ismlで見つけることができ、フォームの一部であり、顧客グループタイプを選択するドロップダウンである。次にリストアップされるのはより複雑なユースケースであり、これは、ユーザグループのＩＤを含む、パラメータ化されたブレッドクラム（breadcrumb）を示す。
<ISMSG  bundle="customer.customergroup"  key="breadcrumb.rest"  default="{0}  -  General"  param0="#CustomerGroup:ID#"/>
【００３５】
図２を続けると、開発者２１０は、コードマークアップ２２０を完成し、ＩＳＭＳＧタグ内にローカライズされるテキストをラッピングし、次に示されるパラメータを使用し、カスタムユーザ定義ＪＳＰタグを使用して任意の必要とされるパラメータＵＲＬをインポートする。カスタムタグを含むＪＳＰページがサーブレットに翻訳されるとき、タグは、タグハンドラと呼ばれるオブジェクト上の動作にコンバートされる。ウェブコンテナが、その後、ＪＳＰページのサーブレットが実行されたときに上記動作を呼び出す。
<ISMSG  bundle="D.F"  key="K"  default="some  text">
<ISMSG  bundle="D.F"  key="K"  default="Product  {0}"  param0="#Product:SKU#">
<%@  taglib  prefix="l10n"  uri="L10NTags"  %>
<l10n:msg  bundle="D.F"  key="impex.text">Here  you  <l10n:param  name="link">
<a  href="#URL(Action('Pipeline-Start'))#"  class="selection_link">
</l10n:param>manage  imports</a>for  images.</l10n:msg>
【００３６】
ＥｘｔＪＳライブラリを使用するＪＳを含む静的ＪａｖａＳｃｒｉｐｔ（ＪＳ）のマークアップは、２つのステップを利用する。ＪＳがそのようなものとしてアプリケーションによってでなく実行時にブラウザにより実行されるため、ローカライズされたテキストは実行時にブラウザに転送される必要がある。コールしているＵＩページは、次に示されるように、ローカライゼーションデータを引き込む必要がある。（いくつかのケースでは、これはＩＳＭＬ内にある。）ローカライゼーションは、このケースにおいて間接的である。テンプレートは、ＪＳが次いで使用するデータを提供する。いくつかのケースでは、翻訳対象テキストのマークアップは、下記の例のように見えることがある。
field:  l10n("js.file",  "key",  "text")
【００３７】
ローカライゼーションデータに対する参照は、下記の例のように見え、取り囲んでいるＵＩページ内で特殊ＨＴＭＬタグを使用することができる。
<isinclude  url="#URL(Action('ViewApplication-GetResourceBundle'),  Parameter('BundleName','js'),Parameter('l10ndebug',l10ndebug))#">
【００３８】
開発者２１０は、LocaleHelperパブリックＡＰＩコードクラスを使用してＪａｖａを扱い、バンドル名で特殊ケアを行い、次にリストアップされるように、マップでパラメータを提供する。
LocaleHelper.translateString("java_bc_catalog.Class",  "key",  "text")
【００３９】
いくつかのケースにおいて、開発者２１０は、ＩＳＭＳＧタグを介して、ＵＩテンプレート内にツールチップを扱うショートカットを作成することができ、ツールチップのためのキーを提供する。いくつかの実現例において、属性のツールチップは、オブジェクト定義に由来し得る。時に、開発者２１０は、翻訳者のための注記を追加する必要があり、例えば、パラメータが何を意味するかを説明する。これらコメントは、抽出され、翻訳者のためにreadme.txtに入れられる。
<ISMSG  msg="user  {0}  "  param0="#Name#"  comment="0:  first  name">
l10n("d.f",  "k",  "user  {0}  ",  name);  //  0:  first  name
LocaleHelper.translateString(...);  //  0:  first  name
##  0:  first  name
【００４０】
一例示的なユースケースにおいて、１０００ウェブページを含む広大なウェブアプリケーションを介して配信される既存のアプリケーションについて、６人の開発者が約１８０，０００のキーでテキストをマークアップするために各々２か月間作業することを求められ、５人のＱＡテスタが結果的なコード破壊を見つけるためにチェックするのに５週間作業し得る。
【００４１】
図２を続けると、開発者２１０は、プラットフォームコードリポジトリ１０２にマークアップされたコードを記憶し、ソースコード２２２をビルドツール１２２に送信する。ビルドツール１２２は、Ｌ１０ｎソースコード検証ツール１２４を使用して、マークアップが正しく、それにより、抽出プロセスが成功裏に実行できることを検証する。Ｌ１０ｎソースコード検証ツール１２４は、エクストラクタ１３２にアクセスしてリソースバンドル２２５を抽出し、これは、キー名文字列及びマークアップされた翻訳可能物の位置を特定するために使用される抽出されたタグを含む。一例において、エクストラクタ１３２は、マークアップを実行するとき、翻訳可能物が意図されたとおり抽出されることをさらに検証することができ、アプリケーションのデプロイメントの間のパラメータハンドリングをチェックする。いくつかの実現例において、スキャンツールが利用されて、抽出されなかったテキストを見つけることができ、ゆえに、開発者によりまだマークアップされておらず、ゆえにそれぞれのローカライゼーションキットが翻訳されたときに英語のまま残るであろう箇所を識別する。
【００４２】
プロセス所有者２７０は、すべてのプロパティファイルをその現在のステートにおいて含む「フル」フォルダと、まだ翻訳されていない文字列を有する「新規」フォルダと、前の最終的なローカライゼーションキット以後にソース言語が更新された文字列を含むファイルを有する「変更」フォルダとを含むディレクトリ構造を有する暫定ローカライゼーションキットとして、抽出されたリソースバンドルを受信する。一実現例において、抽出された暫定ローカライゼーションキットラベルは、抽出の日付を含む。「フル」フォルダは、すべての言語におけるすべてのキーを含み、ローカライゼーションキットは、これらが言語関連コンテンツのみ含むとき、コードリリースから独立している。開発者は、特定のコードバージョンについて、正確にこのコードバージョンのための翻訳対象テキストを含むローカライゼーションキットを抽出し、プロセス所有者が前のローカライゼーションキットに対するアクセスを有する限り、翻訳プロセスを完了して言語パックを配信することができる。結果的な言語パックは、複数のコードバージョンで使用できる。
【００４３】
翻訳可能物の最初のマークアップの一部として、文字列を一意に識別するために使用されるキーは、翻訳者がＵＩにおけるその言語的コンテキストを理解するのに役立つ必要がある。すなわち、文字列が表示されることになるＵＩ要素のタイプを知ることは、翻訳者が正しい用語、文法の異形（例えば、不定詞、フルセンテンス、命令法等）、及び句読点を選択することを可能にする。例えば、「ヘディング」、「メッセージ」、又は「ボタン」であるソーステキストの翻訳は、大文字及び小文字の使用、及び能動スタイル又は受動スタイルの使用、並びに動詞の不定詞又は命令法で異なり得る。「button.new」キーの例において、バンドルは、例えば、それが新しい顧客を作成するために使用されるボタンのラベルであるというコンテキストを与える。
【００４４】
キー名は、翻訳者ツール内でコンテキストを示し、人間の翻訳者が用語的及び文体的エラーを最小限にするのに役立ち、ゆえに、正確な名前が必要とされる。第１の要素は、ページ内のどこにキーが出現するかを合図することができ、例えば、table/table.headerについて、キータイプ、次いで識別が後に続くなどである。キーの異なる要素が、ドットにより区切られる。１つの要素が複数のワードを含む場合、開発者２１０は、error.no_fileについてはこれらをアンダースコアで区切り、あるいは、error.NoFileについてはキャメルケース（CamelCase）を使用し、介在するスペース又は句読点なくフレーズの中間の各ワード又は略語が大文字で始まるように複合ワード又はフレーズを書く。開発者は、タブ、ボタン、フィールド、ブレッドクラム、エラー、及びリンクを含む特定のＵＩ要素にマッチする許容されたキーワードを有するプロパティキータイプのリストを使用する。自然言語文字列が複数の部分に分けられる必要があるとき、開発者は、すべての部分について同じキーを使用し、キーの終わりにシーケンス番号を追加し、それにより、リソースバンドル（さらにリソースファイルとして参照される）がソートされたとき、キーは順番のままである。
【００４５】
プロセス所有者２７０は、開発者２１０から受信した抽出されたバンドルを、ＫＲＣ実行２２６を介してキーリソースチェッカー（ＫＲＣ）１５８に送信して、約２０タイプのユーザインターフェース（ＵＩ）要素についてスクリーニングし、キー命名規定、すなわちＵＩ要素を正しく識別する定義されたキーワードの存在が、コード開発者により守られているかどうかをチェックする。これは、図４Ａ及び図４Ｂに示され、以下で説明される。一実現例において、抽出されたバンドルは、送信される前にｚｉｐ圧縮される。ＫＲＣ１５８に対する入力は、現在のリリースにおいて変更された、値が変わったキー（すなわち、ソース言語内のテキスト文字列）を示す変更されたプロパティと、現在のリリースにおいて追加されたキー（すなわち、ソース言語内に新たに追加されたテキスト）のための新しいプロパティとを含む、抽出されたプロパティファイルのセットを含む。
【００４６】
ＫＲＣ１５８は、暫定ローカライゼーションキット内のキーを人間のローカライゼーションエキスパートに提示し、暫定ローカライゼーションキットに対してタグ名規定強制ツールを実行するように構成可能なタグサニタイゼーションクリーンアップ及び例外生成ツールセットを含む。タグ名規定強制ツールは、抽出されたキーを解析し、キー名文字列及び翻訳可能テキスト（デフォルト、及び、任意選択で元の）の位置を特定し、次いでキー命名ルールを適用し、キー命名ルールは、有効なキーワードのリストからの、テキストが出現するところのそれぞれのＵＩ要素を識別する少なくとも１つの承認されたキーワードの存在を必要とし、キー一意性、すなわち、マッチする値か異なるキーかのいずれかを必要とする。ツールは、人間のローカライゼーションエキスパートによる完成のためにバグレポートスタブ（stubs）を作成するようにさらに構成可能であり、バグレポートスタブ内に、解析されたキー名文字列にキー命名ルールを適用することにより生成されたタグ例外からのコンテキストを含み、例外をトリガしたキー名に関して、完成バグレポート内に含めるために人間のローカライゼーションエキスパートからのさらなるコメントを受け入れる。ツールは、人間のローカライゼーションエキスパートからの翻訳可能テキストに対する編集を受け入れ、開発者による処理のために受信したキー名及び編集した翻訳可能テキストを使用してサニタイゼーション訂正ファイルを生成することができる。ＫＲＣ１５８は、サニタイゼーション訂正ファイル２３６をプロセス所有者２７０に返し、プロセス所有者２７０は、訂正ファイルをレビューし、サニタイゼーション要求をサブミットし、バグレポート２３８をサブミットする。プロセス所有者２７０は、レビュー及び組み込みのためにサニタイゼーションを転送する。サニタイゼーション、すなわち、すべての新規の及び変更された文字列の正規化には、スタイルガイド及び用語集の固守のために用語、句読点、スペリング、及びスタイルを変更すること、並びに、連結又はパラメータの順序などの潜在的なローカライゼーションの問題を解決することが含まれる。サニタイゼーションには、シングル又はダブルクォートについてなど、任意の必要なエスケープシーケンスを適用することが含まれる。一実現例において、プログラムエスケープシーケンスルールを示唆又は自動訂正としてサニタイゼーションに含むことができる。
【００４７】
開発者２１０は、サニタイゼーション結果をレビューし、プラットフォームコードリポジトリ１０２に組み込み、サニタイズされた文字列をマスタコードに戻してマージして、リリースのための向上した英語ソースＵＩを準備する。開発者２１０は、サニタイズされたソースコード２４２をビルドツール１２２に送信し、ビルドツール１２２は、リント（lint）を使用して、サニタイズされたマークアップが正しいことを検証する。いくつかのユースケースにおいて、新しいコンテンツの範囲がそれを保証する場合、サニタイゼーションのＱＡレビューが行われてよい。
【００４８】
図２に示される人間の翻訳者による翻訳のためのローカライゼーションキットを準備するプロセスを続けると、開発者２１０は、サニタイズされたリソースバンドル２４４を抽出し、プロセス所有者２７０は、開発者２１０から受信した抽出されたサニタイズされたバンドルをＫＲＣ実行２４６を介してキーリソースチェッカー（ＫＲＣ）１５８に送信する。一実現例において、抽出されたサニタイズされたバンドルは、送信される前にｚｉｐ圧縮される。ＫＲＣ１５８は、サニタイズされた訂正ファイル２５６における訂正のレポートをプロセス所有者２７０に返し、プロセス所有者２７０は、サニタイゼーション変更が組み込まれたことを検証する（２５８）。プロセスは、サニタイゼーションを検証すること（２６６）と、レビュー及び組み込みのためにサニタイゼーションを転送すること（２３４）と、開発者２１０のレビュー及び組み込み（２４０）とを反復する。同じままであったキーは抑制され（suppressed）、開発者はこれらサニタイゼーションをマージする。いくつかのケースにおいて、人間のＱＡエキスパートが、訂正がリリースブランチにマージされるための要求を承認しなければならない。その後、新しい及び向上した英語がプロダクション環境においてライブ（live）であり、引き出されるローカライゼーションキットは翻訳のためのクリーンソースである。プロセス所有者２７０は、ローカライゼーションキットの改訂されたバージョンを受信し、ＫＲＣを実行し（２４６）、最終的なローカライゼーションキットをコミットすること（２７６）に至る（leading  to）。プロセス所有者２７０は、暫定ローカライゼーションキットと、サニタイゼーション訂正ファイルがマージされたサニタイズされたローカライゼーションキットとを使用して、キットバージョンを比較するように構成可能な、マージ後サニタイゼーションチェックツール１１８を含むローカライゼーション検証ツール（ＬＶＴ）１１６を使用してサニタイゼーションを検証する。これは、図５に示され、以下で説明される。ＬＶＴは、選択された暫定ローカライゼーションキットをサニタイズされたローカライゼーションキットと比較する変更確認ツール１１７を実行し、暫定ローカライゼーションキット及びサニタイズされたローカライゼーションキット内のファイルの総数をカウントし、比較し、レポートし、暫定ローカライゼーションキット及びサニタイズされたローカライゼーションキット内の対応するファイル間でキーコンテンツの差を比較し、レポートし、暫定ローカライゼーションキット及びサニタイズされたローカライゼーションキット内の対応するファイル間の値のパラメータ（parameters-in-values）の差を比較し、レポートする。
【００４９】
暫定ローカライゼーションキットと最終的なローカライゼーションキットとの間のデルタが、返されたサニタイゼーションにマッチするとき、ローカライゼーションキットは、翻訳される準備完了とみなされる。いくつかの予期された変更がレポートされない場合、ＱＡ人員が、開発者が無視したマージコンフリクトがあったかを調査する。ステップは、いかなるエラーも解決するように繰り返すことができる（２６８）。一実現例において、マージ後サニタイゼーションチェックツール１１８は、選択された暫定ローカライゼーションキットのフルフォルダ内のファイル数をカウントし、サニタイズされたフルローカライゼーションキットのフルフォルダ内のファイル数をカウントし、選択された暫定ローカライゼーションキットのフルフォルダ内のファイル数のカウントをサニタイズされたローカライゼーションキットのフルフォルダ内のファイル数のカウントと比較する。チェックツールは、さらに、選択された暫定ローカライゼーションキット内の各フォルダ（フル、変更、及び新規）内の各ファイルのキーコンテンツを、サニタイズされたローカライゼーションキット内の同じフォルダ名（フル、変更、及び新規）を有するフォルダ内の同じファイル名を有するファイルのキーコンテンツと比較する。チェックツールは、さらに、選択された暫定ローカライゼーションキット内のファイルにわたる値のパラメータを、サニタイズされたローカライゼーションキット内のファイルにわたる値のパラメータと比較し、暫定ローカライゼーションキットのフルフォルダ内のファイルのカウント及びコンテンツを、サニタイズされたローカライゼーションキットのフルフォルダ内のファイルのカウント及びコンテンツと比較した結果を表示するマージ後サニタイゼーション訂正レポートを生成し、暫定ローカライゼーションキット内のフル、変更、及び新規フォルダと、サニタイズされたローカライゼーションキット内のフル、変更、及び新規フォルダとにおいて比較された同名ファイルの各ペアについて、キーの差をファイル名ごとにリストアップし、暫定ローカライゼーションキット内のフル、変更、及び新規フォルダと、サニタイズされたローカライゼーションキット内のフル、変更、及び新規フォルダとにおける、値のパラメータの差をフォルダ名ごとにリストアップする。
【００５０】
さらに図２を続けると、いくつかの実現例において、プロセス所有者２７０は、解析により指示された変更で、又は及びローカライゼーション検証ツール（ＬＶＴ）１１６を実行した結果に対する応答で反復する。サニタイズされたローカライゼーションキット２６６が検証された後、開発者２１０は、ローカライゼーションリポジトリ１０５に最終的なローカライゼーションキット（ＦＬＫ）をコミットし（２７６）、プロセス所有者２７０は、人間の翻訳者２８０に最終的なローカライゼーションキットを送信する（２８８）。一実現例において、翻訳者は、翻訳されるキー値ペアのフォルダを有する単一のｚｉｐ圧縮されたファイルを受信する。他の実現例において、ローカライゼーションキットは、別様にパッケージ化できる。確定されたローカライゼーションキットは、ｍｅｍｏＱなどのコンピュータ支援翻訳ツール（ＣＡＴ）を通して実行される。一実現例において、ＣＡＴツールの翻訳メモリツールが、ターゲット言語に対して新しい、ファジーマッチの、非翻訳可能物を決定するために利用される。いくつかのユースケースにおいて、機械翻訳ツールがＣＡＴに接続でき、それにより、人間の翻訳者により編集される機械翻訳（ＭＴ）ドラフトが準備できる。
【００５１】
別の実現例において、異なるツールが使用されて、人間の翻訳者をサポートし、複数の異なる言語に対する翻訳を完成させてよい。一実現例において、ローカライゼーションキットは、英語からフランス語、日本語、ドイツ語、イタリア語、及び中国語に翻訳できる。別のケースにおいて、キットは、開示される方法及びシステムを使用して、多くの他の言語に翻訳できる。一例において、確定されたローカライゼーションキットについて、４つの言語の各々について１人の、４人の翻訳者のグループが、各々１週間作業して４つの言語への翻訳を完成させる。
【００５２】
図３は、最終的なローカライゼーションキットの翻訳者２８０からの翻訳３１８を受信し、すべてのファイルが含まれること及びテキストのすべてが指定された言語にコンバートされたことの品質保証テスト及び検証を完了する一例示的なワークフロー３００を示す。ワークフロー３００は、言語のフルセットを実現するフルにＱＡテストされた言語パックのプロダクションをさらに含む。
【００５３】
翻訳ツール及び編集を使用する人間の翻訳者又は翻訳プロジェクトマネージャは、エラーを取り込む可能性がある。例えば、キーが失われ、あるいは破損される可能性があり、パラメータが失われ、あるいは破損される可能性があり、ファイルのエンコーディングが間違っていることがあり、特定の文字のためのエスケープルールが守られていないことがある。
【００５４】
図３を続けると、プロセス所有者２７０は、ローカライゼーションリポジトリ１０５に翻訳をコミットし（３１６）、翻訳されたローカライゼーションキットをローカライゼーション検証ツール（ＬＶＴ）１１６に送信して、翻訳されたキットが完成であることを検証する（３２６）。ＬＶＴ１１６は、以下で図７について説明されるように、ファイル数が正しいこと、各プロパティファイル内のキー数が正しいこと、及びパラメータが破壊されていないことを確保する翻訳検証ツール１１９における自動化されたテストにより、立証する（validates）。プロセス所有者２７０は、修正及び更新３３８を翻訳者２８０に伝達し、ローカライゼーション検証ツール（ＬＶＴ）１１６を使用してファイル構造及びコンテンツのさらなる修正及び更新３３６をテストする。プロセス所有者２７０は、開発者２１０にビルドのために更新された翻訳を転送し（３４４）、開発者２１０は、ローカライゼーションリポジトリ１０５に修正され、更新された翻訳をコミットし（３４６）、言語パックをビルドする（３５６）。ＱＡテスタ３０４が、以下で詳細に説明されるように、デバッグツール１２８を使用して言語パックを検証する（３６４）。
【００５５】
図３により説明されるプロセスをさらに続けると、言語パックが配信された翻訳にマッチするという自動化されたツールによる立証の後、ＱＡテスタ３０４は、プロセス所有者２７０に対して言語パック（ＬＰ）検証を確認し（３６６）、開発者２１０による組み込みのためにＬＰを転送し（３６５）、翻訳者により、それぞれのキットの翻訳者２８０でのすべての翻訳された言語の共同ウォークスルーを介して（３７６）、ウェブアプリケーションのテストインスタンスでコンテキストにおいてテストする。開発者２１０は、新しい及び変更された文字列に基づくテストスクリプトを準備するＱＡテスタ３０４、しばしば言語エキスパートのために、言語パックテストインスタンスをデプロイする（３７２）。テストスクリプトは、翻訳者を正確なページに導き、ゆえに、皆がソース言語におけるＵＩを見て、各翻訳者が、翻訳者が翻訳したバージョンを見る。一実現例において、ＱＡテスタ３０４との議論の後、翻訳者が識別されたエラーを修正し、翻訳会社がファイルの更新されたセットを送り返す。いくつかのウェブアプリケーションコードについて、技術チームは、言語変更についてさえ、コードベース全体をリビルドしなければならない。他の実現例において、言語パックのみがリビルドされる。現在の言語パックに対する修正を比較するレポートが、図１２Ａ及び図１２Ｂに示され、以下で説明される。
【００５６】
各言語についての、コンテキストにおける、変更された及び新しい特徴のテストの後、及び、翻訳者２８０との間で調整して、翻訳されたファイルに修正を適用し（３８８）た後、プロセス所有者２７０は、翻訳者２８０から修正された翻訳を受信し、回帰テスト３８４のためにＱＡテスタ３０４に最終的な言語パックを転送する（３８６）。１つのユースケースにおいて、自動化されたテストは、ウェブアプリケーション表示内のあらゆるウェブパネルが外国語で表示することを確認する。一実現例において、ＱＡテスタ３０４は回帰テストを実行し（３８４）、いくつかの実現例において、翻訳されたウェブアプリケーションの１０〜１５パーセントをカバーする。翻訳回帰テストツール１４８は、選択された言語について、ウェブアプリパネルに対する変更にわたり反復し、人間の視覚的検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字がウェブアプリパネルを破壊しないことを検証する。いくつかのケースにおいて、回帰テストツール１４８は、選択された言語について、ウェブアプリパネルに対する変更にわたり反復し、機械検査のためのウェブアプリコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字がウェブアプリパネルを破壊しないことを検証する。
【００５７】
１つのツールが、自動化されたテストを実行して、ウェブアプリケーションサイト内のすべてのページがメニュー上でクリックすることにより到達されることができることを検証する。このことは、アプリ内のページが空でレンダリングされず、選ばれた言語で表示することを検証する。自動化されたコンテキスト内（in-context）テストが、すべてのサポートされた言語のためのすべてのテストケースを含む単一のコアモジュールをコールする。自動化されたコンテキスト内検証ツールは、パラメータについて各々のサポートされた言語について、指定された言語パックを使用する。１つのユースケースにおいて、テスト論理が、ＸｃｅｐｔａｎｃｅによるカスタムＸＬＴモジュールを通して実行され、これは、指定された言語パック及びそのキー値ペアを調べ、テスト下のパネルにナビゲートして検証すべきＵＩ要素を見つける。テストは、言語パック内で指定された、取得された値が、ウェブページ上にレンダリングされたＵＩ要素内のテキストにマッチすることをアサートする（asserts）。自動化されたコンテキスト内テストは、１つでもミスマッチが見つけられた場合、失敗することになる。いかなる例外又はメッセージも、ライブログファイルに書き込まれる。自動化されたコンテキスト内検証テストは、言語パック限定（qualification）プロセスの間にテスタのマシン上でローカルに、あるいは統合環境内で開発サイクルの間に連続的に実行できる。各々のサポートされた言語の言語パックはローカルジョブ内で指定でき、ローカルジョブはいつでも実行するように設定できる。
【００５８】
図３に示されるプロセスを続けると、回帰テストの結果３８７がプロセス所有者２７０に転送され、プロセス所有者は、修正を適用し、翻訳されたＬＰを立証し、開発者２１０にデプロイメントのために最終的な言語パックを転送し（３９４）、開発者２１０は、プロダクション翻訳リポジトリ（ＰＬＤ）１５２、言語パックをデプロイするのに使用可能なコードリポジトリ内に、確定された言語パックを持続する（persists）（３９６）。翻訳されたＬＰの立証には、図１２Ｃ及び図１２Ｄに示され、以下に説明されるように、新しい言語パックを元の言語パックと比較するレポートを実行することを含むことができる。一実現例において、自動化されたシステムは、ファイルをＰＬＤ１５２に追加する前にバージョン情報を追加し、ＰＬＤ１５２からは、これらをデプロイできる。プロセス所有者２７０は、言語パックがプロダクションマシンに対するデプロイメントの準備完了であることをオペレーションチームに通知する。一実現例において、ＬＰを構成するリソースファイルの自動化された検証が完了したとき、これらは、このリリースのための専用テストインスタンスに、さらに、後方互換性をチェックするために最も最近のグローバルリリースXX.x-1からのテストインスタンスにももう１度デプロイされ、なぜならば、グローバルに適用される言語パックは、プラットフォームのグローバルリリースXX.xプレビューインスタンスにデプロイされたとき、同じＰＯＤ上のXX.x-1プロダクションインスタンス上でも利用されることになるからである。いくつかの実現例について、ＱＡテスタ３０４は、回帰のためのさらなるスポットチェックを完了する。デプロイされた言語パックは、多くの実現例において、アプリケーションコードのソース制御システムに対してさらにコミットされる。ウェブアプリケーションの４つの言語への翻訳についての一例示的な実現において、１つの言語パックが４つのｚｉｐ圧縮されたファイルとしてすべての４つの言語を含み、これが、テストインスタンスにデプロイされ、テストが完了した後にソースコードリポジトリにコミットされる。
【００５９】
図４Ａは、一例示的なキーリソースチェッカー（ＫＲＣ）１５８を示し、これは、コンマ区切りテキストとして入力された許容されたキーワードである、ＵＩ要素４２２を識別するワードのセットに対して、プロパティキー名を検証するキー名検証ツールである。この例において、ツールは、「変更」フォルダ内のプロパティファイル４１２をテストする。図４Ｂは、変更フォルダ内のプロパティファイルに対して図４Ａに示されるレポートを実行することにより生成されたレポートを示す。レポート例において、key:customerCdnshelp.2.1.2  ４７６が、許可されたキータイプでないとリストアップされている。ＱＡテスタ３０４は、この情報を使用してバグレポートを完成させ、開発者にこれらキーをリネームするように依頼することができ、なぜならば、ローカライゼーションエキスパート及び翻訳者がキー名により、キーがコラム、ラジオボタン、タイトル、エラーメッセージ、ボタン、又は他の要素を指し示すのかどうかを知る必要があるからであり、ゆえに、翻訳者は、翻訳するときに正しい文法的スタイル及び用語を選び、コンテキストにおいてテストするときにページ上のそれぞれのＵＩ要素の位置を特定することができる。バグレポートスタブコンテキストは、キー命名ルールを解析されたキー名文字列に適用することにより生成されたタグ例外からであり、人間のローカライゼーションエキスパートは、例外をトリガしたキー名に関してさらなるコメントを追加することができる。図示される例において、バグレポートは、コンテンツ開発ネットワークチーム（Ｃｄｎｓ）に送付できる。いくつかのケースにおいて、開発者は、キーリソースツールに対するアクセスを有する。いくつかの実現例において、アプリの新しいリリースの配信をスローダウンさせることを回避するために、誤ったキー名を使用して当座の翻訳が継続することになり、次のリリースにおいて、開発者はバグレポートに応答することになり、それにより、コードは改善され、キーはより記述的になる。
【００６０】
図５は、一例示的なローカライゼーション検証ツール（ＬＶＴ）１１６を示し、これは、新しいローカライゼーションキットバージョン５１２、サニタイゼーション訂正ファイルがマージされた、サニタイズされたローカライゼーションキットを、元の又は暫定ローカライゼーションキット５２２と比較するように構成可能なマージ後サニタイゼーションチェックツール１１８インターフェースを含む。この例において、2017-01-19fullは、テキスト正規化又はサニタイゼーションを実行する人間のローカライゼーションエキスパートが作業した、抽出されたＩＳＭＳＧタグを含む。人間のローカライゼーションエキスパートは2017-1-30にサニタイゼーションを終了し、サニタイズされたコードを挿入して更新されたコードベースにするようにマージが実行された。次いで、最終的なローカライゼーションキットを生成するように抽出が実行された。最終的なローカライゼーションキットに対しては、比較が実行できる。
【００６１】
図６Ａに示されるレポート６００は、ＱＡテスタ３０４がサニタイゼーションのレポートされた適用と意図された変更とを手動で比較し、２つの文書、すなわち、レポートと、マージのためにサブミットされたサニタイゼーションファイルの各々とを一度に見ることを可能にする。一例において、２０のサニタイゼーションファイルがマージのためにサブミットされる。いくつかの実現例において、比較は自動化できる。異なる結果が、ローカライゼーションキットの異なるバージョンの比較から得られる。例えば、ユーザは、比較を実行すべき新規、変更、又はフル抽出を選択することができる。例示的なレポート６００は、元のキットのＦＵＬＬ６１２とサニタイズされたキットのＦＵＬＬ６２２とを比較した結果を示し、結果が同じであるところ及び結果が同じでないところを示す。サニタイズされたキットのコンテンツは、デプロイメントに送り返されたものにマッチするべきであり、開発者の技術チームにより変更が組み込まれたことを確認する。３つのキーメッセージが異なる値を有するキーを示し、なぜならば、センテンスの終わりにピリオドが追加されたからである（６５２）。いくつかのキーメッセージ６６２が現れ、なぜならば、シングルクォートが見つけられないからである。これは、レポート６００内に「異なる値」メッセージを結果としてもたらし、なぜならば、開発者が２つのシングルクォートを１つのダブルクォートに変更したからである。レポートは、元のフルとサニタイズされたフルとの間の差のみ示す。一実現例において、さらなるプログラミングが、サニタイゼーションファイル内のキーのすべてが更新されたことを自動的にチェックすることができる。
【００６２】
図６Ｂは、訂正が適用される前の一例示的なサニタイゼーション訂正ファイルを示す。この例では、preferences_new_2017-02-27.propertiesバンドル６０２について、行４（６０４）において、角括弧６０６が使用され、アポストロフィで置換される必要がある。さらに、行５（６０５）において、ワード値６０８が大文字で書かれる必要がある。図６Ｃは、エラーを訂正するために適用されるべき変更、すなわち、サニタイズされたプロパティを示す。行４はコメントアウトされ、行５（６３２）が追加されて行４を置換し、角括弧をアポストロフィ６３８で置換する。行７はコメントアウトされ、行８（６４２）で置換され、「ｖａｌｕｅ」の小文字ｖを大文字Ｖ６４８で置換する。図６Ｄは、サニタイゼーションの後のキー値ペアを示し、すなわち、アポストロフィ６７８及びワード「Ｖａｌｕｅ」６８８がローカライゼーションキットのサニタイズされたバージョン内に正しく表される。
【００６３】
図７Ａは、マージ後サニタイゼーションチェックツール１１８及び翻訳検証ツール１１９を含むローカライゼーション検証ツール（ＬＶＴ）１１６を介したソース及びターゲットローカライゼーションキットの一例示的な比較を示す。ＬＶＴは、翻訳者により提供されたターゲットローカライゼーションキット７４２と、サニタイズされたローカライゼーションキットのフル７１２、変更７２２、及び新規７３２を比較するように構成可能である。一実現例において、ローカライゼーション検証ツール１１９は、少なくともキー名とソース言語における翻訳可能テキスト文字列とを有する抽出されたタグを含む最終的なローカライゼーションキットを人間の翻訳者に対して転送し、追加され又は置換された翻訳されたテキスト文字列を有する抽出されたタグを含む翻訳されたキットを人間の翻訳者から受信し、翻訳されたキットを人間のローカライゼーションエキスパートに提示することができる。翻訳検証ツール１１９は、翻訳されたターゲットローカライゼーションキットを最終的なソースローカライゼーションキットと比較する変更確認ツールを実行し、最終的なソースローカライゼーションキットと共に翻訳されたキット内のファイルの総数をカウントし、比較し、レポートし、最終的なローカライゼーションキットと共に翻訳されたキット内の対応するファイル間のキーコンテンツの差を比較し、レポートし、最終的なローカライゼーションキットと共に翻訳されたキット内の対応するファイル間の値のパラメータの差を比較し、レポートし、人間のローカライゼーションエキスパートからの翻訳可能テキストに対する編集を受け入れ、最終的な翻訳されたキットを持続ストレージにコミットする。
【００６４】
図７Ｂは、図７Ａに示されるツールを実行した結果のレポートを示し、ターゲットにおいてファイルが４つ少ないことを示す（７６５）。このケースにおいて、ローカライゼーションプロセス所有者は、開発下の新しい特徴のために、自身が翻訳者にまだ作業してほしくなかった４つのファイルを抑制するように意図的に依頼した。１つのユースケースにおいて、エラーメッセージが英語のみで表示され、なぜならば、エラーコードが翻訳されないからであり、メッセージは、ＡＰＩに内在する理由でシングルクォートを使用し、すなわち、二重のシングルクォートが、ダブルクォート、コードを破壊するであろう文字としてレンダリングされる。ツールはまた、値が引き込まれるコードプレースホルダーをチェックして、コードが翻訳により破損されなかったことを確保することができる。図７Ｂのレポートは、送信されたものと返信で受信されたものとの間で差が見つからなかった結果（７７６）を示し、これは、望ましい結果である。
【００６５】
翻訳検証ツール１１９は、最終的なローカライゼーションキットの改訂されたバージョンを転送することと、翻訳されたキットの改訂されたバージョンを受信することと、変更確認ツールを実行することと、翻訳可能テキストに対する編集を受け入れることとにわたり反復し、最終的な翻訳されたキットのコミットに至ることができる。いくつかの実現例において、最終的なローカライゼーションキット及び翻訳されたキットは、別個のフォルダ、すなわち、コードベースからの抽出のフルセットの、フルフォルダと、コードベースからの前の抽出の後に変わったタグの抽出の、変更フォルダと、前の抽出が行われたときにコードベースに存在しなかったタグの抽出の、新規フォルダとを含む。
【００６６】
図８は、図２及び図３のワークフローにおいて図示され、上記で詳細に説明されたように、ウェブサイトの要素を複数の言語に正確に翻訳し、プロダクション使用のためにプロダクションサーバに言語パックを配信するプロセスの概要を示す。アプリの顧客は、言語パックコンテンツを見ることができる。時刻スタンプ、日付スタンプ、及び通貨が、異なるロケールについて異なる可能性がある。一実現例において、バンドルされたファイルのフォルダは、ロケールごとに１つのファイルセットを含む。一例において、ドイツ語ロケールは、オーストリア、リヒテンシュタイン、及びルクセンブルグを含む。
【００６７】
言語パックは、コードから独立してデプロイできる。もはや使用していないキーが削除されないことを確保するために、言語パックは、新たに翻訳された言語パックを、前にデプロイされた言語パックとマージする。すなわち、もはや翻訳に必要とされないキーが依然としてコード内に存在することができ、翻訳は、アプリケーションを配信するコードを破壊するようには許容され得ない。一例において、フランス語において、恐らく会社名を除き、すべてのワードが翻訳されるべきである。対照的に、イタリア語において、多くの英語ワードが使用され、例えば、ｏｋである。別の例において、日本語は、時に英語ワードを、そのアルファベットの最も近い対応する文字を使用して字訳する。複数の言語に翻訳される必要がある一例示的なアプリインターフェースページが次に説明される。図９Ａは、翻訳される要素の一例示的なユーザインターフェース（ＵＩ）セグメントを示し、サイトプリファレンス（Site  Preferences）９４２を含む。図９Ｂは、図９Ａにおけるサイトプリファレンス９４２の選択の後に視認できる、Ａ／Ｂテスト９３６を含むサイトプリファレンス９２６のＵＩセグメントを表示する。図９Ｃは、イタリア語で図９Ａの例示的なＵＩセグメントを表示し、「Preferenze  del  sito」９８２を含む。図９Ｄは、フランス語への翻訳の後の、図９Ａの例示的なＵＩセグメント、「Preferences  du  site」９８６を示す。図１０Ａは、サイトプリファレンス９２６におけるＡ／Ｂテスト９３６の選択の後に視認できるＵＩコンテンツを表示し、図１０Ｂは、日本語に翻訳されたＡ／Ｂテストサイトプリファレンスを表示する。
【００６８】
翻訳者は、翻訳活動をサポートするための市販のツールを使用する。一実現例において、ｍｅｍｏＱが翻訳者により使用可能であり、翻訳者は、開示の技術を使用して、翻訳されているアプリ内のウェブパネル上の位置を識別するキー名を見て、アプリケーションＵＩ内で翻訳されるべきテキスト文字列を一義的に識別することができる。図１１Ａ及び図１１Ｂは、キーのパワーの例を示す。すなわち、一意のキーが翻訳者に各テキスト文字列のコンテキストを示す。図１１Ａに示される例において、web.button.new_rule  １１４４は、翻訳されるべきテキストがどこに位置するかに関する情報を与え、翻訳者が正しい文字列を固定するのをサポートする。行７１のテキスト文字列は、この例において、英語１１２２、及びドイツ語への翻訳１１２６でリストアップされる。図１１Ｂに示される例では、行４７９がレビューのために選択されたとき、admin.fields.title.edit  １１５４が、翻訳されるべきテキストの位置情報を与え、正しい文字列を固定することを容易にする。テキスト文字列は、ソース言語の英語１１３２及びターゲット言語のドイツ語１１３６の双方でリストアップされる。別の実現例において、人間の翻訳者は、コンピュータ支援翻訳ソフトウェアスイートとして、例えばＴｒａｄｏｓ（登録商標）など、異なる市販のツールを利用してもよい。
【００６９】
共同ウォークスルー３７６の間の翻訳者２８０及びＱＡテスタ３０４による議論の後、翻訳者は識別されたエラーを修正し、翻訳会社は更新された「修正」ファイルセットを送り返す。図１２Ａは、翻訳されたローカライゼーションキット修正１２２２の既存の言語パック１２１２に対する比較をセットアップするＵＩを示す。ローカライゼーションキットファイルは持続されており、ファイルが持続されているディレクトリが指定される。比較は、ファイルの存在、キーの存在、値の比較、及び予期された値のパラメータの存在を考慮する。図１２Ｂは、フランス語翻訳についての修正比較レポートを示し、menu.actio.site-prefs_search.nameの一例示的なキーが修正されたアクセント記号を有する（１２５２）。
【００７０】
ＬＶＴは、すべての修正が完了した後、元の言語パックを最終的な言語パックと比較するツールを含む。図１２Ｃは、新たにビルドされた言語パック１２１５を元の言語パック１２２５と比較するレポートＵＩを示し、図１２Ｄは、元の中国語言語パック１２２４の新しい中国語言語パック１２１４に対する比較から生じる一例示的なレポートを示す。図１２Ｄは、中国語の元のＬＰと最終的なＬＰとの間の差１２５４を示す。１つの文字列がマッチしていない。１つのケースにおいて、これは、最終的なＬＰがコンテキスト内テストの後に翻訳者が作成した修正を吸収したため、又はビルドエラーのためであり得る。ツールを実行するＱＡテスタは、ＬＰ間のこの差が所望の言語的修正として予期されているのかどうか、又はそれがビルド不備であり得るのかどうかに関して決定を行う。パラメータの比較は、パック内のパラメータが同じである場合に、「差が見つからなかった」メッセージ１２６４を与える。
【００７１】
一実現例において、開示される技術は、テストセッションを実行するアプリケーションサーバでローカルに翻訳者が完了するいかなる編集も捕捉することに使用可能な、翻訳者のためのライブ編集モードを含むことができる。テストセッションが終了されたとき、すべての捕捉された変更がエクスポートされ、次いで、ｍｅｍｏＱ又は別のコンピュータ支援翻訳ソフトウェアスイートにインポートされることができる。
【００７２】
デバッグツール１２８は、テキストの翻訳を保持する言語パックのデバッギングをサポートするコンテキスト内検証（verification-in-context）ツールを含み、テキストは、ウェブアプリパネルからソース言語タグ内に抽出され、翻訳は、ソース言語から複数のターゲット言語に進み、翻訳されたターゲット言語のタグが、これらが抽出されたウェブアプリパネルに論理的又は物理的に戻されマージされる。コンテキスト内検証ツールは、ウェブアプリパネルを監査して、ウェブアプリパネル上で、ウェブアプリパネル内にレンダリングするテキストを識別することと、各々の識別されたテキストが、翻訳のために抽出可能であったソース言語タグ内に含まれたかどうかを決定することと、各ソース言語タグの処理が、翻訳の後にウェブアプリパネルに論理的又は物理的に戻されマージされたターゲット言語タグを作り出したかどうかを決定することと、翻訳の後にウェブアプリパネルに戻されマージされた識別されたテキストのインスタンスと、翻訳の前にそれぞれのソース言語タグ内に存在した補足的なソースタグ情報とをリンクするアクセスを提供することとにより、選択されたターゲット言語への翻訳を検証するように構成可能である。
【００７３】
図１３は、日本語への翻訳のための、デバッグモードの一実現例を示す。コンテキスト内検証ツールが、選択されたターゲット言語でウェブアプリパネルの表示をさせ、各ウェブアプリパネルは、見られたとき、ウェブアプリパネル上のいずれの識別されたテキストが抽出されなかったか（１３３４）、いずれの抽出されたテキストが翻訳されなかったか（１３２４、１３５４）、及びいずれの抽出されたテキストが翻訳の後にウェブアプリパネルに戻されマージされたか（１３４４）を視覚的に示すようにエンコードされる。図１４Ａは、図１３に示されるデバッグモードパネルの別のビューを示し、これは、翻訳の後にウェブアプリパネルに戻されマージされた抽出されたテキスト（１３４４）のための補足的なソースタグ情報１４５６を表示する。デバッグモードのいくつかの実現例において、ユーザは、ウェブアプリパネル上の関心のあるテキスト文字列１４４２の上でホバーする（hover）ことができ、補足的なソースタグ情報が表示され、すなわち、ソース言語タグが属するバンドルabtest  １４６４、ソース言語タグに割り当てられたキー名abtestpreferences.field.retrievestats  １４６５、及びソース言語における翻訳可能テキスト「Retrieve  Statistics  from  Production」１４６６である。デバッグモードにおいて、翻訳者は、翻訳者がそのＣＡＴツール内で文字列のキー名を見ることにより意図された文字列を操作していることを確認することができる。さらに別のユースケースにおいて、デバッグモードは、抽出されたテキスト文字列のマークアップを含むことができ、それにより、まだ抽出されていないテキストがより明らかになる。いくつかの実現例において、デバッグモードは、テキストの文字列の上でホバーする必要なくキー名を示すことができる。
【００７４】
図１４Ｂは、一実現例における、ＱＡテスタ及び複数の人間の翻訳者によるウォークスルーの間に使用可能なヘルプ画面を示す。「複数参加を許容する（allow  multiple  participation）」ラベル１４２４が抽出されたが、翻訳されたものとして表示しておらず、翻訳されたテキスト１４３４が、翻訳者に情報を与えるための役立つテキストとして含まれる。ポップアップテキスト１４３４はウェブページに属し、テキストラベル１４２４を参照するヘルプテキストである。このポップアップは、タイトルとしてラベルの名前を、次いでヘルプテキストを有する。アプリケーションの一部として、このヘルプテキストポップアップはデバッグモードによりさらに扱われ、ゆえに、抽出及び翻訳されたテキストが視覚的に識別される。補足的なソースタグ情報１４５４は、翻訳が存在する言語１４６４、この言語パックについては３つの言語を示す。
【００７５】
ワークフロー
図１５は、ロケール固有コンポーネントを追加すること及びテキストを翻訳することにより、ウェブアプリケーションにおいて要素を正確に翻訳し、国際化されたソフトウェアを特定の地域又は言語に適合させる環境の一実現例のフローチャート１５００である。フローチャート１５００は、例えば、情報を受信し又は取り出し、情報を処理し、結果を記憶し、結果を送信するように構成された１つ以上のプロセッサにより、データベースシステムで少なくとも部分的に実現できる。他の実現例が、図１５に例示されるものとは異なる順序の動作、及び／又は異なる、より少ない、又はさらなる動作を実行してよい。複数の動作が、いくつかの実現例において組み合わせられてよい。簡便さのため、このフローチャートは方法を参照して説明される。
【００７６】
動作１５１０において、暫定ローカライゼーションキット内のキーを人間のローカライゼーションエキスパートに提示する。
【００７７】
動作１５１５において、暫定ローカライゼーションキットに対してタグ名規定強制ツールを実行して、抽出されたキーを解析し、キー名文字列及び翻訳可能テキストの位置を特定し、動作１５２０において、キー命名ルールを適用する。
【００７８】
動作１５２５において、有効なキーワードのリストからの少なくとも１つのキーワードの存在を必要とし、キーの意味ある及び一貫した命名を保証する。
【００７９】
動作１５３０において、キー一意性、すなわち、マッチする値か異なるキーかのいずれかを必要とする。
【００８０】
動作１５３５において、人間のローカライゼーションエキスパートによる完成のためにバグレポートスタブを作成し、バグレポートスタブ内に、キー命名ルールを解析されたキー名文字列に適用することにより生成されたキー例外からのコンテキストを含め、動作１５４０において、例外をトリガしたキー名に関して、完成バグレポート内に含めるために、人間のローカライゼーションエキスパートからのさらなるコメントを受け入れる。
【００８１】
動作１５４５において、完成バグレポート内に含めるために人間のローカライゼーションエキスパートからのコメントを受け入れる。
【００８２】
動作１５５０において、開発者による処理のために受信されたキー名及び編集された翻訳可能テキストを使用してサニタイゼーション訂正ファイルを生成する。
【００８３】
上記で説明された動作は、異なる数又は配置のステップを使用して説明された方法を実行するように、より多くのステップに細分割され、あるいはより少ないステップに組み合わせられてよい。
【００８４】
マルチテナント統合
図１６は、国際化及びローカライゼーションにより、大規模ウェブアプリケーションを複数の言語に正確かつ効率的に翻訳する図１の環境１００を実現するのに適した一例示的なマルチテナントシステム１６００のブロック図を提示する。一般に、図１６の例示されるマルチテナントシステム１６００は、別法として「マルチテナントデータベース」と本明細書において呼ばれる、複数のテナント間で共有される共通データベース１６３２からのデータ１６２２に基づく、仮想アプリケーション１６１６及び１６１８を動的にサポートするサーバ１６０４を含む。ＧＵＩクライアントを含む、仮想アプリケーション１６１６及び１６１８により生成されたデータ及びサービスは、所望に応じ、ネットワーク１６４５を介して任意数のクライアント装置１６４８又は１６５８に提供される。
【００８５】
本明細書において使用されるとき、「テナント」又は「組織」は、マルチテナントデータベース１６３２内のデータの共通サブセットに対するアクセスを共有する１以上のユーザの、グループを参照する。これに関し、各テナントは、それぞれのテナントに関連づけられ、割り当てられ、あるいはその他の方法で属する１以上のユーザを含む。別の言い方をすれば、マルチテナントシステム１６００内の各それぞれのユーザは、マルチテナントシステム１６００によりサポートされた複数のテナントのうち特定のテナントに関連づけられ、割り当てられ、あるいはその他の方法で属する。テナントは、ユーザ、ユーザ部門、作業又は法的組織、及び／又はマルチテナントシステム１６００内に特定のユーザセットのためのデータを維持する任意の他のエンティティを表し得る。複数のテナントがサーバ１６０４及びデータベース１６３２に対するアクセスを共有し得るが、サーバ１６０４から各テナントに対して提供される特定のデータ及びサービスは、他のテナントに対して提供されるものからセキュアに隔離できる。ゆえに、マルチテナントアーキテクチャは、他のテナントに属しあるいはその他の方法で関連づけられたデータ１６２２のいずれかを必ずしも共有することなく、異なるユーザセットが機能性及びハードウェアリソースを共有することを可能にする。
【００８６】
マルチテナントデータベース１６３２は、任意数のテナントに関連づけられたデータ１６２２を記憶及び管理することができる任意の種類のリポジトリ又は他のデータストレージシステムである。データベース１６３２は、任意タイプの従来的なデータベースサーバハードウェアを使用して実現されてよい。様々な実現例において、データベース１６３２は、サーバ１６０４との間で処理ハードウェアを共有する。他の実現例において、データベース１６３２は、本明細書に説明される様々な機能を実行するように、サーバ１６０４と通信する別個の物理及び／又は仮想データベースサーバハードウェアを使用して実現される。マルチテナントデータベース１６３２は、マルチテナントデータベース１６３２がアプリケーションプラットフォーム１６１７により生成されたオンデマンド仮想アプリケーション１６１６又は１６１８に対して実行時にデータを提供する（あるいは、提供するように利用可能である）点で、本明細書において別法としてオンデマンドデータベースとして参照されてよく、テナント１のメタデータ１６１２とテナント２のメタデータ１６１４とはセキュアに隔離される。
【００８７】
実際、データ１６２２は、アプリケーションプラットフォーム１６２２をサポートするように任意の方式で編成され、フォーマットされてよい。様々な実現例において、従来的なデータ関係が、索引化、一意性、エンティティ間の関係、及び／又は所望される従来的なデータベース編成の他の態様を確立する任意数のピボットテーブル１６１３を使用して確立される。
【００８８】
サーバ１６０４は、仮想アプリケーションを生成するための動的なアプリケーションプラットフォーム１６１７を集合的に提供する１つ以上の実際及び／又は仮想のコンピューティングシステムを使用して実現される。例えば、サーバ１６０４は、互いに関連して、典型的には従来的なネットワーク通信、クラスタ管理、ロードバランシング、及び必要に応じた他の特徴と関連して動作する実際及び／又は仮想のサーバのクラスタを使用して実現されてよい。サーバ１６０４は、プロセッサ１６３６、メモリ１６３８、入力／出力機構１６３４などの任意の種類の従来的な処理ハードウェアと共に動作する。入力／出力１６３４は、ネットワーク（例えば、ネットワーク１６４５、又は任意の他のローカルエリア、ワイドエリア、若しくは他のネットワークに対する）、大容量記憶装置、ディスプレイ装置、データ入力装置などに対するインターフェースを一般に表す。ユーザインターフェース入力装置１６３４には、キーボード；マウス、トラックボール、タッチパッド、又はグラフィックスタブレットなどのポインティング装置；スキャナ；ディスプレイに組み込まれたタッチスクリーン；音声認識システム及びマイクロフォンなどのオーディオ入力装置；及び他タイプの入力装置を含むことができる。一般に、用語「入力装置」の使用は、情報をコンピュータシステム１６１７に入力するための可能なタイプの装置及び方法を含むことが意図される。
【００８９】
ユーザインターフェース出力装置には、ディスプレイサブシステム、プリンタ、ファックスマシン、又はオーディオ出力装置などの非視覚的装置を含むことができる。ディスプレイサブシステムは、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）などのフラットパネル装置、投影装置、又は可視イメージを作成する何らかの他の機構を含むことができる。ディスプレイサブシステムは、オーディオ出力装置などの非視覚的表示をさらに提供することができる。一般に、用語「出力装置」の使用は、プロセッサ１６３６からユーザに又は別のマシン若しくはコンピュータシステムに情報を出力するためのすべての可能なタイプの装置及び方法を含むことが意図される。
【００９０】
プロセッサ１６３６は、任意数の「クラウドベース」又は他の仮想システムを含む、任意数の分散又は統合システムにわたり広がる１つ以上のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、処理コア、及び／又は他のコンピューティングリソースなどの、任意の適切な処理システムを使用して実現されてよい。メモリ１６３８は、任意の種類のランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、フラッシュメモリ、磁気又は光大容量記憶装置などを含む、プロセッサ１６３６上での実行のためのプログラミング命令を記憶することができる非一時的な短期若しくは長期記憶装置又は他のコンピュータ読取可能媒体を表す。コンピュータ実行可能プログラミング命令は、サーバ１６０４及び／又はプロセッサ１６３６により読み出され、実行されたときに、サーバ１６０４及び／又はプロセッサ１６３６に、アプリケーションプラットフォーム１６１７及び／又は仮想アプリケーション１６１６及び１６１８作成し、生成し、あるいはその他の方法で容易にすることを実行させ、本明細書に説明される１つ以上のさらなるタスク、動作、機能、及び／又はプロセスを実行させる。メモリ１６３８は、こうしたコンピュータ読取可能媒体の１つの適切な実現例を表し、別法として又は追加的に、サーバ１６０４は、例えば、ポータブルハードドライブ、ＵＳＢフラッシュドライブ、光ディスクなどのポータブル又はモバイルコンポーネント又はアプリケーションプラットフォームとして実現される外部のコンピュータ読取可能媒体を受容し、該媒体と協働できる点に留意すべきである。
【００９１】
アプリケーションプラットフォーム１６１７は、データ及び／又はサービスをクライアント装置１６４８及び１６５８に提供する仮想アプリケーション１６１６及び１６１８を生成する任意の種類のソフトウェアアプリケーション又は他のデータ処理エンジンである。典型的な一実現例において、アプリケーションプラットフォーム１６１７は、任意の種類の従来的又は専有のオペレーティングシステム１６２８を使用して処理ハードウェアの処理リソース、通信インターフェース、及び他の特徴に対するアクセスを得る。仮想アプリケーション１６１６及び１６１８は、典型的に、クライアント装置１６４８及び１６５８から受信した入力に応答して実行時に生成される。
【００９２】
図１６を引き続き参照し、サーバ１６０４により提供されるデータ及びサービスは、ネットワーク１６４５上の任意の種類のパーソナルコンピュータ、モバイル電話、タブレット、又は他のネットワーク対応クライアント装置１６４８若しくは１６５８を使用して取り出されてよい。一例示的な実現例において、クライアント装置１６４８又は１６５８は、モニタ、画面、又はマルチテナントデータベース１６３２から取り出されたデータ及び／又は情報をグラフィカルに提示することができる別の従来的な電子ディスプレイなどの、ディスプレイ装置を含む。
【００９３】
いくつかの実現に例において、ネットワーク１６４５は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ＷｉＭＡＸ、Ｗｉ−Ｆｉ、電話ネットワーク、無線ネットワーク、ポイントツーポイントのネットワーク、スターネットワーク、トークンリングネットワーク、ハブネットワーク、メッシュネットワーク、Ｂｌｕｅｔｏｏｔｈなどのピアツーピア接続、近距離通信（ＮＦＣ）、Ｚ‐Ｗａｖｅ、ＺｉｇＢｅｅ、又はインターネットを含むデータネットワークの他の適切な構成のうち、任意の１つ又は任意の組み合わせであり得る。
【００９４】
前述の説明は、実際専ら例示的であり、対象事項の実現例又はこうした実現例の適用及び使用を限定するようには意図されない。さらに、技術分野、背景技術、又は詳細な説明において提示されたいかなる明示的又は暗黙的な理論によっても限定される意図はない。本明細書において使用されるとき、ワード「例示的な」は、「例、インスタンス、又は例示の役割を果たすこと」を意味する。本明細書において例示的として説明されるいかなる実現例も、必ずしも他の実現例を上回り好適又は有利として解釈されるべきでなく、本明細書に説明される例示的な実現例は、いかなる方法においても対象の範囲又は適用可能性を限定するようには意図されない。
【００９５】
開示される技術は、データベースシステム、マルチテナント環境、又は関係データベース実現例、例えば、Ｏｒａｃｌｅ（登録商標）ＴＭ互換データベース実装、ＩＢＭ（登録商標）  ＤＢ２（登録商標）エンタープライズサーバＴＭ互換関係データベース実装、ＭｙＳＱＬ（登録商標）ＴＭ若しくはＰｏｓｔｇｒｅＳＱＬＴＭ互換関係データベース実装、若しくはＭｉｃｒｏｓｏｆｔ（登録商標）ＳＱＬサーバＴＭ互換関係データベース実装など、又はＮｏＳＱＬ非関係データベース実現例、例えば、ＶａｍｐｉｒｅＴＭ互換非関係データベース実装、Ａｐａｃｈｅ  ＣａｓｓａｎｄｒａＴＭ互換非関係データベース実装、ＢｉｇＴａｂｌｅＴＭ互換非関係データベース実装、若しくはＨＢａｓｅＴＭ若しくはＤｙｎａｍｏＤＢ（登録商標）ＴＭ互換非関係データベース実装などを含む、任意のコンピュータ実現システムの文脈で実現できる。
【００９６】
さらに、開示される技術は、互いに協働し、通信する２つ以上の別個の及び区別可能なコンピュータ実現システムを使用して実現できる。開示される技術は、プロセス、方法、装置、システム、デバイス、コンピュータ読取可能命令若しくはコンピュータプログラムコードを記憶したコンピュータ読取可能記憶媒体などのコンピュータ読取可能媒体として、又はコンピュータ読取可能プログラムコードを具現化させたコンピュータ使用可能媒体を含むコンピュータプログラムプロダクトとしてを含む、多数の方法で実現できる。
【００９７】
特定の実現例
いくつかの特定の実現例及び特徴が下記の議論で説明される。
【００９８】
人間のローカライゼーションエキスパートによるサニタイゼーション及び例外生成のために、暫定ローカライゼーションキットにおいて、ウェブアプリケーションのコードベースから抽出された、翻訳のためのテキストのタグを提示するように構成可能なサニタイゼーション及び例外生成ツールセットを実現する開示の方法の一実現例が、暫定ローカライゼーションキットに対してタグ名規定強制ツールを実行して、タグを解析してキー名文字列及び翻訳可能テキストを抽出し、次いで、抽出されたキー名文字列を、有効なキーワードのリストからの少なくとも１つのキーワードの存在を必要とし、かつキー一意性を必要とするキー命名ルールを使用して立証することを含む。方法は、人間のローカライゼーションエキスパートによる完成のために少なくとも１つのバグレポートスタブを作成することであって、バグレポートスタブ内に、キー名文字列を立証するためにキー命名ルールを使用して生成されたタグ例外からのコンテキストを含み、かつ例外をトリガしたキー名に関して、バグレポートスタブに追加するために人間のローカライゼーションエキスパートからさらなるコメントを受け入れることをさらに含む。方法は、人間のローカライゼーションエキスパートからの翻訳可能テキストに対する編集を受け入れ、開発者がウェブアプリケーションのコードベースにマージするように、受信されたキー名と編集された翻訳可能テキストとを使用してサニタイゼーション訂正ファイルを生成することをさらに含む。
【００９９】
開示の技術のこの方法及び他の実現例は、下記の特徴及び／又は開示のさらなる方法と関連して説明される特徴のうち１つ以上を含むことができる。簡潔さのために、本出願において開示される特徴の組み合わせは個々に列挙されず、特徴の各基本セットで繰り返されない。
【０１００】
開示の方法について、キー一意性は、特定のキー名を有するすべてのタグがマッチする翻訳可能テキストを共有するとき満たされ、有効なキーワードは、自然言語における発話（speech）の一部に一貫してマッチする。１つのケースにおいて、有効なキーワードは、別の自然言語に翻訳されたときに特定の文法を必要とするユーザインターフェースの要素に一貫してマッチする。有効なキーワードは、翻訳可能テキストが抽出されたところにマッチするＧＵＩ要素コンテキストを提供する。ＧＵＩ要素コンテキストのキー名は、翻訳の各ターゲット言語について、翻訳可能テキストが翻訳されるべきターゲット自然言語における文法形式を指定するスタイルガイドを呼び出す。キー名は、モジュール名と、翻訳可能テキストが抽出されたＧＵＩ要素とのコンテキストをさらに含む。コンテキストは、特に数千のパネルを有する大規模ウェブアプリケーションにおいて、ＧＵＩにおけるスティング（sting）の位置を特定するのに役立つ。
【０１０１】
開示の方法のいくつかの実現例は、開発者によるマージの後にコードベースから抽出された、暫定ローカライゼーションキットとマージ後のサニタイズされたローカライゼーションキットとを使用して、キットバージョンを比較するように構成可能なマージ後サニタイゼーションチェックツールを実現することをさらに含み、マージ後サニタイゼーションチェックツールは、選択された暫定ローカライゼーションキットをサニタイズされたローカライゼーションキットと比較する変更確認ツールを実行し、暫定ローカライゼーションキット及びサニタイズされたローカライゼーションキット内のファイルの総数をカウントし、比較し、レポートし；暫定ローカライゼーションキット及びマージ後のサニタイズされたローカライゼーションキット内の対応するファイル間でキーコンテンツの差を比較し、レポートし；暫定ローカライゼーションキット及びサニタイズされたローカライゼーションキット内の対応するファイル間で値のパラメータの差を比較し、レポートし；マージ後のサニタイズされたローカライゼーションキットの承認の後、最終的なローカライゼーションキットを生成して翻訳者に送信する。
【０１０２】
開示の方法のいくつかの実現例は、暫定ローカライゼーションキット及びマージ後のサニタイズされたローカライゼーションキットの各々において、別個のフォルダとして：コードベースからの抽出のフルセットの、フルフォルダ；コードベースからの前の抽出の後に変わったタグの抽出の、変更フォルダ；及び前の抽出が行われたときにコードベースに存在しなかったタグの抽出の、新規フォルダ；を含む。いくつかのケースにおいて、マージ後サニタイゼーションチェックツールは、訂正についてカウントすること及び比較することからの例外を反復的にレポートし、次いで、更新されたサニタイズされたローカライゼーションキットに対してカウントすること及び比較することを繰り返すようにさらに構成可能である。
【０１０３】
ウェブアプリケーションのコードベースの翻訳において使用されるファイルの訂正を検証する１つの開示の方法が、ウェブアプリケーションのコードベースから抽出された、少なくともキー名とソース言語における翻訳可能テキスト文字列とを有するタグを含む最終的なローカライゼーションキットを人間の翻訳者に転送し；人間の翻訳者から、追加され又は置換された翻訳されたテキスト文字列を有する抽出されたタグを含む翻訳されたキットを受信し、翻訳されたキットを人間のローカライゼーションエキスパートに提示する；ように構成可能な翻訳検証ツールセットを含む。１つのケースにおいて、抽出されたタグは、翻訳で置換されたテキスト文字列を各々有する。方法は、翻訳されたキットを最終的なローカライゼーションキットと比較する変更確認ツールを実行し、最終的なローカライゼーションキットと共に翻訳されたキット内のファイルの総数をカウントし、比較し、レポートし；最終的なローカライゼーションキットと共に翻訳されたキット内の対応するファイル間のキーコンテンツの差を比較し、レポートし；かつ最終的なローカライゼーションキットと共に翻訳されたキット内の対応するファイル間の値のパラメータの差を比較し、レポートすることをさらに含む。方法は、人間のローカライゼーションエキスパートからの翻訳可能テキストに対する編集を受け入れることと；最終的な翻訳されたキットを持続ストレージにコミットすることとをさらに含む。
【０１０４】
方法のいくつかの開示の実現例は、開発者によるマージの後にコードベースから抽出された、暫定ローカライゼーションキットとマージ後のサニタイズされたローカライゼーションキットとを使用して、キットバージョンを比較するように構成可能なマージ後サニタイゼーションチェックツールを実現することをさらに含み、マージ後サニタイゼーションチェックツールは、選択された暫定ローカライゼーションキットをサニタイズされたローカライゼーションキットと比較する変更確認ツールを実行する。方法は、暫定ローカライゼーションキット及びサニタイズされたローカライゼーションキット内のファイルの総数をカウントし、比較し、レポートし；暫定ローカライゼーションキット及びマージ後のサニタイズされたローカライゼーションキット内の対応するファイル間でキーコンテンツの差を比較し、レポートし；暫定ローカライゼーションキット及びサニタイズされたローカライゼーションキット内の対応するファイル間で値のパラメータの差を比較し、レポートし；マージ後のサニタイズされたローカライゼーションキットの承認の後、最終的なローカライゼーションキットを生成して翻訳者に送信すること；をさらに含む。
【０１０５】
テキストの翻訳を保持する言語パックのデバッギングをサポートする開示の方法の一実現例において、テキストはウェブアプリパネルからソース言語タグに抽出され、翻訳はソース言語から複数のターゲット言語に進み、翻訳ターゲット言語タグが、これらが抽出されたウェブアプリパネルに論理的又は物理的に戻されマージされ、コンテキスト内検証ツールは、ウェブアプリパネルを監査して、選択されたターゲット言語への翻訳を、ウェブアプリパネル上で、ウェブアプリパネル内にレンダリングするテキストを識別することと、各々の識別されたテキストが、翻訳のために抽出可能であったソース言語タグに含まれたかどうかを決定することと、各ソース言語タグの処理が、翻訳の後にウェブアプリパネルに論理的又は物理的に戻されマージされたターゲット言語タグを作り出したかどうかを決定することと、翻訳の後にウェブアプリパネルに戻されマージされた識別されたテキストのインスタンスと、翻訳の前にそれぞれのソース言語タグに存在した補足的なソースタグ情報とをリンクするアクセスを提供することと、により検証するように構成可能なコンテキスト内検証ツールを実現するプロセッサ上で実行するコードを含む。開示の方法は、選択されたターゲット言語でウェブアプリパネルの表示をさせることであって、各ウェブアプリパネルは、見られたとき、ウェブアプリパネル上のいずれの識別されたテキストが抽出されなかったか、いずれの抽出されたテキストが翻訳されなかったか、及びいずれの抽出されたテキストが翻訳の後にウェブアプリパネルに戻されマージされたかを視覚的に示すようにエンコードされることと；ウェブアプリパネル上の特定の識別されたテキストの補足的なソースタグ情報の表示をさせることであって、補足的なソースタグ情報は、ソース言語タグが属するバンドル、ソース言語タグに割り当てられたキー名、及び、ソース言語における翻訳可能テキストを少なくとも含むこととをさらに含む。いくつかの実現例において、表示は、翻訳が存在する言語を含む。
【０１０６】
いくつかの開示の実現例において、方法は、ウェブアプリパネル上に補足的なソースタグ情報の表示をさせた後、ユーザから翻訳テキスト訂正を受信することと；選択されたターゲット言語において、ウェブアプリパネルにおける使用のために翻訳テキスト訂正を持続することとをさらに含む。方法は、翻訳テキスト訂正を受け入れる訂正入力エリアの表示をさせることをさらに含むことができる。開示の方法について、翻訳テキスト訂正を持続することは、コンピュータ支援翻訳ツールによりインポート可能なフォーマットで翻訳テキスト訂正を保存することを含む。翻訳テキスト訂正を持続することは、ウェブアプリパネルにより使用される翻訳ターゲット言語タグ内の識別されたテキストを更新することと、更新された翻訳ターゲット言語タグを持続することとをさらに含むことができる。方法のいくつかの実現例は、ウェブアプリパネルを変更することなくウェブアプリパネルにオーバーレイするフローティングウィンドウに補足的なソースタグ情報の表示をさせることをさらに含む。開示の方法は、補足的なソースタグ情報のために確保されたエリアに補足的なソースタグ情報の表示をさせることをさらに含む。方法のいくつかの開示の実現例について、各ウェブアプリパネルは、識別されたテキストの部分の翻訳の後、識別されたテキスト内に現れるソース言語における自然言語文字列を、ターゲット言語における文字列と共に視覚的に示すようにさらにエンコードされる。方法は、選択された言語について、ウェブアプリパネルに対する変更にわたり反復し、人間の視覚的検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字がウェブアプリパネルを破壊しないことを検証することをさらに含むことができる。いくつかのケースにおいて、方法は、選択された言語について、ウェブアプリパネルに対する変更にわたり反復し、機械検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字がウェブアプリパネルを破壊しないことを検証することをさらに含む。
【０１０７】
一実現例において、開示のコンテキスト内検証ツールは、選択された言語について、ウェブアプリパネルに対する変更にわたり反復し、人間の視覚的検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字がウェブアプリパネルを破壊しないことを検証するように構成可能な回帰ツールセットを実現する。いくつかのケースにおいて、回帰ツールセットは、選択された言語について、ウェブアプリパネルに対する変更にわたり反復し、機械検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字がウェブアプリパネルを破壊しないことを検証するように構成可能である。
【０１０８】
さらに別の実現例が、非一時的コンピュータ読取可能媒体を含んでよく、該媒体にロードされたプログラム命令を含み、プログラム命令はコンピュータハードウェアと組み合わせられ実行されたときに、テキストの翻訳を保持する言語パックのデバッギングを実現し、テキストはウェブアプリパネルからソース言語タグに抽出され、翻訳はソース言語から複数のターゲット言語に進み、翻訳ターゲット言語タグが、これらが抽出されたウェブアプリパネルに論理的又は物理的に戻されマージされる。
【０１０９】
さらに別の実現例が、コンピュータプログラム命令を含む有形の非一時的コンピュータ読取可能媒体を含んでよく、上記命令はコンピュータハードウェアと組み合わせられ、実行されたときに、前に説明された方法のいずれかをコンピュータに実現させる。
【０１１０】
開示された技術は、上記で説明された好適な実施例及び例に対する参照により開示されたが、これら例は、限定的意味でなく例示で意図されることが理解されるべきである。当業者が変更及び組み合わせに容易に気付き、こうした変更及び組み合わせは本イノベーションの主旨及び下記の特許請求の範囲内にあることが企図される。
【図１】
2018185809.tif 000003
【図２】
2018185809.tif 000004
【図３】
2018185809.tif 000005
【図４Ａ】
2018185809.tif 000006
【図４Ｂ】
2018185809.tif 000007
【図５】
2018185809.tif 000008
【図６Ａ】
2018185809.tif 000009
【図６Ｂ】
2018185809.tif 000010
【図６Ｃ】
2018185809.tif 000011
【図６Ｄ】
2018185809.tif 000012
【図７Ａ】
2018185809.tif 000013
【図７Ｂ】
2018185809.tif 000014
【図８】
2018185809.tif 000015
【図９】
2018185809.tif 000016
【図１０Ａ】
2018185809.tif 000017
【図１０Ｂ】
2018185809.tif 000018
【図１１Ａ】
2018185809.tif 000019
【図１１Ｂ】
2018185809.tif 000020
【図１２Ａ】
2018185809.tif 000021
【図１２Ｂ】
2018185809.tif 000022
【図１２Ｃ】
2018185809.tif 000023
【図１２Ｄ】
2018185809.tif 000024
【図１３】
2018185809.tif 000025
【図１４Ａ】
2018185809.tif 000026
【図１４Ｂ】
2018185809.tif 000027
【図１５】
2018185809.tif 000028
【図１６】
2018185809.tif 000029
【外国語明細書】
2018185809000001.pdf