(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022166021
(43)【公開日】2022-11-01
(54)【発明の名称】自然言語翻訳及びローカライゼーション
(51)【国際特許分類】
G06F 8/36 20180101AFI20221025BHJP
【FI】
G06F8/36
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022119338
(22)【出願日】2022-07-27
(62)【分割の表示】P 2018079799の分割
【原出願日】2018-04-18
(31)【優先権主張番号】15/490,852
(32)【優先日】2017-04-18
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/491,952
(32)【優先日】2017-04-19
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】506332063
【氏名又は名称】セールスフォース ドット コム インコーポレイティッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】コーネリア シッテル
(72)【発明者】
【氏名】ヘンドリック リプカ
(57)【要約】 (修正有)
【課題】自然言語翻訳及びローカライゼーションを提供する。
【解決手段】方法は、ウェブアプリケーション内の要素の正確な翻訳のため、暫定ローカライゼーションキット内のタグをローカライゼーションエキスパートに提示し、暫定ローカライゼーションキットに対してタグ名規定強制ツールを実行するように構成可能なサニタイゼーション及び例外生成ツールセットを提供し、タグ名規定強制ツールは、抽出されたタグを解析し、キー名文字列及び翻訳可能テキストの位置を特定し、キー命名ルールを適用する。ツールセットは、タグ例外からバグレポートスタブを作成し、例外をトリガしたキー名に関して、エキスパートからのさらなるコメントを受け入れ、開発者による処理のために受信されたキー名と編集された翻訳可能テキストとを使用してサニタイゼーション訂正ファイルを生成するよう構成され、言語パックのデバッグをサポートするコンテキスト内検証ツールを含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
1つ以上のプロセッサにより、ウェブアプリケーションのコードベース内のファイルと前記ウェブアプリケーションをローカライズされたバージョンに翻訳するために使用される翻訳文字列とを含む暫定ローカライゼーションキットを受信するステップと、
前記コードベース内の変更ファイルと翻訳文字列訂正とを含むサニタイズされたローカライゼーションキットを受信するステップであり、前記変更ファイル及び翻訳文字列訂正は、生成されたサニタイゼーション訂正ファイルに基づいて作成されたものである、ステップと、
前記暫定ローカライゼーションキットに対して前記サニタイズされたローカライゼーションキットにおけるキーコンテンツ及び値のパラメータにおける差を比較することと、前記暫定ローカライゼーションキットにおける前記ファイルの数が前記サニタイズされたローカライゼーションキットにおける前記ファイルの数にマッチすること、前記暫定ローカライゼーションキットにおけるプロパティファイル内のキー数が前記サニタイズされたローカライゼーションキットにおけるプロパティファイル内の第2のキー数にマッチすること、及び前記暫定ローカライゼーションキットにおけるファイル内の予期されたパラメータが前記サニタイズされたローカライゼーションキットにおける対応するファイル内の第2の予期されたパラメータにマッチすることを確保することとにより、前記サニタイズされたローカライゼーションキットが翻訳の準備ができていることを検証するステップと、
前記サニタイズされたローカライゼーションキットに基づいて前記ウェブアプリケーションを前記ローカライズされたバージョンに翻訳させるステップと、
を含む方法。
【請求項2】
前記サニタイズされたローカライゼーションキットにおける前記変更ファイルに対する編集を受信するステップ、
をさらに含む請求項1に記載の方法。
【請求項3】
前記ウェブアプリケーションを前記ローカライズされたバージョンに翻訳させることは、
少なくともキー名とソース言語における翻訳可能テキスト文字列とを有する抽出されたタグを含む最終的なローカライゼーションキットを人間の翻訳者に対して送信することをさらに含む、請求項1に記載の方法。
【請求項4】
前記サニタイズされたローカライゼーションキット及び前記暫定ローカライゼーションキットにおけるファイル数のカウントと、前記サニタイズされたローカライゼーションキット及び前記暫定ローカライゼーションキットにおけるキーの差と、前記サニタイズされたローカライゼーションキット及び前記暫定ローカライゼーションキットにおけるパラメータとを含む比較レポートを生成するステップ、
をさらに含む請求項1に記載の方法。
【請求項5】
前記暫定ローカライゼーションキットは、フルフォルダ、新規フォルダ、変更フォルダ、及び前記暫定ローカライゼーションキットの抽出の日付を含む、請求項1に記載の方法。
【請求項6】
前記サニタイズされたローカライゼーションキットは、フルフォルダ、新規フォルダ、及び変更フォルダを含む、請求項1に記載の方法。
【請求項7】
最終的なローカライゼーションキットをコンピュータ支援翻訳ツールに送信するステップ、
をさらに含む請求項1に記載の方法。
【請求項8】
システムであって、
メモリと、
前記メモリに結合され、
ウェブアプリケーションのコードベース内のファイルと前記ウェブアプリケーションをローカライズされたバージョンに翻訳するために使用される翻訳文字列とを含む暫定ローカライゼーションキットを受信し、
前記コードベース内の変更ファイルと翻訳文字列訂正とを含むサニタイズされたローカライゼーションキットを受信し、前記変更ファイル及び翻訳文字列訂正は、生成されたサニタイゼーション訂正ファイルに基づいて作成されたものであり、
前記暫定ローカライゼーションキットに対して前記サニタイズされたローカライゼーションキットにおけるキーコンテンツ及び値のパラメータにおける差を比較することと、前記暫定ローカライゼーションキットにおける前記ファイルの数が前記サニタイズされたローカライゼーションキットにおける前記ファイルの数にマッチすること、前記暫定ローカライゼーションキットにおけるプロパティファイル内のキー数が前記サニタイズされたローカライゼーションキットにおけるプロパティファイル内の第2のキー数にマッチすること、及び前記暫定ローカライゼーションキットにおけるファイル内の予期されたパラメータが前記サニタイズされたローカライゼーションキットにおける対応するファイル内の第2の予期されたパラメータにマッチすることを確保することとにより、前記サニタイズされたローカライゼーションキットが翻訳の準備ができていることを検証し、
前記サニタイズされたローカライゼーションキットに基づいて前記ウェブアプリケーションを前記ローカライズされたバージョンに翻訳させる
ように構成された少なくとも1つのプロセッサと、
を含むシステム。
【請求項9】
前記少なくとも1つのプロセッサはさらに、前記サニタイズされたローカライゼーションキットにおける前記変更ファイルに対する編集を受信するように構成される、請求項8に記載のシステム。
【請求項10】
前記ウェブアプリケーションを前記ローカライズされたバージョンに翻訳させるために、前記少なくとも1つのプロセッサはさらに、
少なくともキー名とソース言語における翻訳可能テキスト文字列とを有する抽出されたタグを含む最終的なローカライゼーションキットを人間の翻訳者に対して送信するように構成される、請求項8に記載のシステム。
【請求項11】
前記少なくとも1つのプロセッサはさらに、前記サニタイズされたローカライゼーションキット及び前記暫定ローカライゼーションキットにおけるファイル数のカウントと、前記サニタイズされたローカライゼーションキット及び前記暫定ローカライゼーションキットにおけるキーの差と、前記サニタイズされたローカライゼーションキット及び前記暫定ローカライゼーションキットにおけるパラメータとを含む比較レポートを生成するように構成される、請求項8に記載のシステム。
【請求項12】
前記暫定ローカライゼーションキットは、フルフォルダ、新規フォルダ、変更フォルダ、及び前記暫定ローカライゼーションキットの抽出の日付を含む、請求項8に記載のシステム。
【請求項13】
前記サニタイズされたローカライゼーションキットは、フルフォルダ、新規フォルダ、及び変更フォルダを含む、請求項8に記載のシステム。
【請求項14】
前記少なくとも1つのプロセッサはさらに、最終的なローカライゼーションキットをコンピュータ支援翻訳ツールに送信するように構成される、請求項8に記載のシステム。
【請求項15】
命令を記憶させた非一時的コンピュータ読取可能装置であって、前記命令は、少なくとも1つのコンピューティング装置により実行されたときに前記少なくとも1つのコンピューティング装置に動作を実行させ、前記動作は、
ウェブアプリケーションのコードベース内のファイルと前記ウェブアプリケーションをローカライズされたバージョンに翻訳するために使用される翻訳文字列とを含む暫定ローカライゼーションキットを受信することと、
前記コードベース内の変更ファイルと翻訳文字列訂正とを含むサニタイズされたローカライゼーションキットを受信することであり、前記変更ファイル及び翻訳文字列訂正は、生成されたサニタイゼーション訂正ファイルに基づいて作成されたものである、ことと、
前記暫定ローカライゼーションキットに対して前記サニタイズされたローカライゼーションキットにおけるキーコンテンツ及び値のパラメータにおける差を比較することと、前記暫定ローカライゼーションキットにおける前記ファイルの数が前記サニタイズされたローカライゼーションキットにおける前記ファイルの数にマッチすること、前記暫定ローカライゼーションキットにおけるプロパティファイル内のキー数が前記サニタイズされたローカライゼーションキットにおけるプロパティファイル内の第2のキー数にマッチすること、及び前記暫定ローカライゼーションキットにおけるファイル内の予期されたパラメータが前記サニタイズされたローカライゼーションキットにおける対応するファイル内の第2の予期されたパラメータにマッチすることを確保することとにより、前記サニタイズされたローカライゼーションキットが翻訳の準備ができていることを検証することと、
前記サニタイズされたローカライゼーションキットに基づいて前記ウェブアプリケーションを前記ローカライズされたバージョンに翻訳させることと、
を含む、非一時的コンピュータ読取可能装置。
【請求項16】
前記動作は、
前記サニタイズされたローカライゼーションキットにおける前記変更ファイルに対する編集を受信することをさらに含む、請求項15に記載の非一時的コンピュータ読取可能装置。
【請求項17】
前記動作は、
少なくともキー名とソース言語における翻訳可能テキスト文字列とを有する抽出されたタグを含む最終的なローカライゼーションキットを人間の翻訳者に対して送信することをさらに含む、請求項15に記載の非一時的コンピュータ読取可能装置。
【請求項18】
前記暫定ローカライゼーションキットは、フルフォルダ、新規フォルダ、変更フォルダ、及び前記暫定ローカライゼーションキットの抽出の日付を含む、請求項15に記載の非一時的コンピュータ読取可能装置。
【請求項19】
前記サニタイズされたローカライゼーションキットは、フルフォルダ、新規フォルダ、及び変更フォルダを含む、請求項15に記載の非一時的コンピュータ読取可能装置。
【請求項20】
前記動作は、
最終的なローカライゼーションキットをコンピュータ支援翻訳ツールに送信することをさらに含む、請求項15に記載の非一時的コンピュータ読取可能装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は、同時に申請された「WEB APPLICATION LOCALIZATION」と題された米国特許出願(Atty. Docket No. SALE 1188-1)に関連する。上記関連出願は、すべての目的について本明細書において参照援用される。
【0002】
本開示の分野は、国際化(I18n)及びローカライゼーション(L10n)を介したウェブアプリケーションの要素の正確な翻訳に関し、アプリケーションが異なる言語、地域差、及びターゲット市場ロケールの技術要件を扱うことを可能にする。国際化は、様々な言語及び地域に適合できるようにソフトウェアアプリケーションを設計するプロセスである。ローカライゼーションは、ロケール固有コンポーネントを追加すること及びテキストを翻訳することにより、国際化されたソフトウェアを特定の地域又は言語に適合させるプロセスである。
【0003】
開示される方法は、ソフトウェアインスタンスに対する複数のテナントのデジタルデータを管理することを含み、複数のテナントの各テナントは、少なくとも1つのアプリケーションのソフトウェアインスタンスに対する特権の特定のセットで一般的アクセスを共有するユーザのグループを含む。
【背景技術】
【0004】
背景技術セクションで論じられる対象事項は、単に背景技術セクションにおけるその言及の結果として従来技術であると仮定されるべきでない。同様に、背景技術セクションで言及され又は背景技術セクションの対象事項に関連づけられた問題は、従来技術において前に認識されていたと仮定されるべきでない。背景技術セクションにおける対象事項は異なるアプローチを単に表し、これら自体もまた請求される発明の実現に対応し得る。
【0005】
今日の世界で、数百万人のインターネットユーザを扱い、管理するウェブアプリケーションは、エンドユーザにより必要とされる言語でアプリケーションをグローバルに配信し、インタラクション及びユーザ体験のために効率的な、使用可能なプラットフォームを提供するという挑戦に直面している。
【0006】
ウェブアプリケーション開発者は、しばしば、ほぼ排他的にプラットフォームの特徴の開発に集中し、開発されているプラットフォームの国際化及びローカライゼーションの要件を良く知らない。しばしば、異なる言語及びロケールを扱うために技術変更なく様々な言語及び地域に適合できるようにソフトウェアアプリケーションを設計することが、ほとんど考慮されない。既存のアプローチでは、しばしば、品質保証(QA)ステージにおいてのみローカライゼーションに対して開発者が着手する。そのときでさえ、カスタム論理及びサードパーティインテグレーションに関する範囲が、しばしば、開発者にとって不明りょうなままである。言語的品質が信頼できず、用語が一貫性がなく、文体選択がランダムに見えるのは一般的な状況であり、それにより、ウェブサイト又はアプリケーションは、「ネイティブなもの」の代わりに「翻訳されたもの」と感じる。
【0007】
開発者は、ウェブアプリケーションにおけるGUI要素の正確な翻訳を効率的にサポートし、アプリケーション及びプラットフォームの設計フェーズの間に国際化及びローカライゼーション要件を満たし、さらに、そのグローバルなユーザに対してネイティブに見える継続的な更新の必要を満たす、より良いアプローチを必要とする。昨今のデータセンタは複雑であり、そのインフラストラクチャは継続的な更新を組み込むことができる必要がある。グローバルデータセンタ(DC)は、スーパーポッド(super-pods)(SP)及びデプロイメントポイント(points of deployment)(POD)を含むことがある。各PODは、マルチテナントサービスで数万の顧客を扱うことができる。各エンドユーザは、異なるロールを含むデプロイメントポイント(POD)に接続され、ウェブサーバと、データベースサーバと、ロギングメトリクスサーバと、データを索引化し顧客データを変換するさらなるサーバとが含まれる。各アプリは、複数の機能ロールを含むことができるサービスを配信する。一例において、認定されたロールが、マーケティング、顧客関係管理、又はユーザインターフェース(UI)などの1つのサービスを参照する。
【発明の概要】
【0008】
開示されるシステム及び方法は、国際化されたソフトウェアを特定の地域又は言語に適合させ、ロケール固有コンポーネントを追加し、テキストを翻訳することにより、大規模ウェブサイトを介して配信されるアプリケーションを含むアプリケーションのための、ローカライゼーションを介したウェブアプリケーションにおける要素の正確な及び効率的な翻訳のためのツールを提供する。これらツールは、より高い言語的品質の翻訳されたウェブアプリケーション、ウェブアプリケーションのグローバルなユーザのためのシームレスなネイティブ体験、開発リソースの効率的な使用、プロダクション品質ウェブプラットフォーム又はアプリケーションに対する効率的な翻訳、同時にリリースされる複数のターゲット言語、及びサイト維持のための容易な継続的更新を届けることを可能にする。開示される技術はうまくスケーリングし、4、14、又は40の言語を並行してリリースすることができる。
【0009】
本明細書において、簡素化されたサマリが、より詳細な説明及び添付の図面において下記に続く例示的な、非限定的な実現例の様々な態様の基本的又は一般的理解を可能にするのに役立つように提供される。しかしながら、このサマリは、広い又は網羅的な概要としては意図されない。代わりに、このサマリの専らの目的は、下記に続く様々な実現例のより詳細な説明に対する導入として簡素化された形式でいくつかの例示的な非限定的な実現例に関連したいくつかの概念を提示することである。
【0010】
開示される技術は、暫定ローカライゼーションキット内のタグを人間のローカライゼーションエキスパートに提示し;暫定ローカライゼーションキットに対してタグ名規定強制ツールを実行する;ように構成可能なタグサニタイゼーションクリーンアップ及び例外生成ツールセットを含み、タグ名規定強制ツールは、抽出されたタグを解析し、キー名文字列及び翻訳可能テキスト(デフォルト、及び、任意選択で元の)の位置を特定し、次いで、有効なキーワードのリストからの少なくとも1つのキーワードの存在を必要とし、かつキー一意性:マッチする値か異なるキーかのいずれかを必要とする、キー命名ルールを適用する。さらに、開示されるツールセットは、人間のローカライゼーションエキスパートによる完成のためにバグレポートスタブを作成し、バグレポートスタブ内に、解析されたキー名文字列にキー命名ルールを適用することにより生成されたタグ例外からのコンテキストを含み、例外をトリガしたキー名に関して、完成バグレポート内に含めるように人間のローカライゼーションエキスパートからのさらなるコメントを受け入れる。ツールキットは、開発者による処理のために、受信されたキー名と編集された翻訳可能テキストとを使用してサニタイゼーション訂正ファイルをさらに生成することができる。
【0011】
開示される技術の他の態様及び利点が、下記の図面、詳細な説明、及び特許請求の範囲のレビューで分かるであろう。
【図面の簡単な説明】
【0012】
含まれる図面は例示目的のものであり、本開示の1つ以上の実現例について可能な構造及びプロセス動作の例を単に提供する役割を果たす。これら図面は、本開示の主旨及び範囲から逸脱することなく当業者により行われ得る形式及び詳細のいかなる変更も限定しない。対象事項のより完全な理解が、詳細な説明及び特許請求の範囲を参照することにより、下記の図面と関連して考慮されたとき、導き出され得る。図面において、同様の参照番号は図面全体を通して同様の要素を参照する。
【
図1】ウェブアプリケーション内の要素の正確な翻訳のための一環境を例示する。
【
図2】複数の言語に対する翻訳のためのウェブアプリケーションフレームワークを準備し、人間の翻訳者に対して転送可能なローカライゼーションキットを作成する一例示的なメッセージフローを示す。
【
図3】翻訳者から確定されたローカライゼーションキットの翻訳を受信し、品質保証テスト及び検証を完了し、複数のターゲット言語翻訳を含む言語パックをプロダクションにデプロイする一例示的なメッセージフローを示す。
【
図4A】プロパティキー名をこれらが含まなければならないコンテキストワードのセットに対して検証するキー名検証ツールの一例示的なUIを示す。
【
図4B】選択されたフォルダ内のプロパティファイルに対してキー名検証ツールを実行することにより生成されたレポートを示す。
【
図5】サニタイゼーション訂正ファイルがマージされたサニタイズされたローカライゼーションキットを、元の(ソース)又は暫定のローカライゼーションキットと比較するように構成可能な、一例示的なマージ後サニタイゼーションチェックツールを示す。
【
図6A】
図5に示されたマージ後サニタイゼーションチェックツールを実行することにより生成されたレポートを示す。
【
図6B】
図6B、
図6C、及び
図6Dは、ツールを介して識別されたエラーと、エラーが修正された後の結果を示すレポートとの例を示す。
【
図6C】
図6B、
図6C、及び
図6Dは、ツールを介して識別されたエラーと、エラーが修正された後の結果を示すレポートとの例を示す。
【
図6D】
図6B、
図6C、及び
図6Dは、ツールを介して識別されたエラーと、エラーが修正された後の結果を示すレポートとの例を示す。
【
図7A】サニタイズされたソースローカライゼーションキットを、ターゲット言語に翻訳されかつ翻訳者により配信されたローカライゼーションキットと比較するように構成可能な、一例示的なマージ後サニタイゼーションチェックツールを示す。
【
図7B】
図7Aに示されるマージ後サニタイゼーションチェックツールの結果のレポートを示す。
【
図8】ウェブアプリケーションの要素を複数の言語に正確に翻訳するプロセスの概要を示す。
【
図9】
図9Aは、翻訳されるべき要素の一例示的なユーザインターフェース(UI)セグメントを示す。
図9Bは、
図9AにおけるウェブアプリケーションのUSセグメント内のサイトプリファレンスモジュールの選択の後に視認できるUIセグメントを示す。
図9Cは、イタリア語への翻訳の後の、
図9Aの例示的なUIセグメントを示す。
図9Dは、フランス語への翻訳の後の、
図9Aのウェブアプリケーションからの例示的なUIを示す。
【
図10A】英語で表示されたウェブアプリケーションからの一例示的なA/Bサイトプリファレンスモジュールを示す。
【
図10B】日本語に翻訳されたA/Bサイトプリファレンスを示す。
【
図11A】コンピュータ支援翻訳ツール(CAT)において翻訳されているテキスト文字列のコンテキスト的位置を識別するための一意キーの一例示的な使用を表示する。
【
図11B】CATにおいて翻訳されているテキスト文字列のコンテキスト的位置を識別するためのキーの第2の例を示す。
【
図12A】翻訳者により配信されたローカライゼーションキットの修正をテストする一比較ツールUIを表す。
【
図12B】修正されたローカライゼーションキットの、フランス語への翻訳の比較のための一例示的なレポートを示す。
【
図12C】新たにビルドされた言語パックを元の言語パックと比較する一レポートUIを示す。
【
図12D】言語的コンテキスト内テストの前の元の言語パックを最終的な言語パックと比較するLVTから生じた一例示的なレポートを示す。
【
図13】日本語への翻訳のための、デバッグモードの一実現例を示す。
【
図14A】
図13に示されるデバッグモードパネルの、補足的なソースタグ情報を表示する一ビューを示す。
【
図14B】一実現例における、QAテスタ及び複数の人間の翻訳者によるウォークスルーの間に使用可能な一ヘルプ画面を示す。
【
図15】ウェブアプリケーションの要素を正確に翻訳する環境の一実現例の例示的なワークフローである。
【
図16】ウェブアプリケーションの要素を正確に翻訳するために使用されるハードウェアシステムを実現する一システム環境を示す。
【発明を実施するための形態】
【0013】
下記の詳細な説明は図面を参照して行われる。サンプルの実現例は、開示された技術の範囲を限定するためでなく該技術を例示するために説明され、上記範囲は、特許請求の範囲により定義される。当業者は、下記の説明に対する様々な均等的変更を認識するであろう。
【0014】
世界的に、ウェブアプリケーション及びプラットフォームは、国際的に数百万のユーザに対して情報を伝達し、高度なウェブアプリケーションについては千ものページを有する。アプリケーション及びプラットフォームの開発者は、ユーザに情報を提示し、かつユーザから情報を収集するために使用される様々なウェブページフォーマット及びフォームを考慮する必要があり、アドレスフォーム、日付フォーマット、通貨フォーマット、支払い方法、出荷方法、課税、ギフト登録イベント、及び検索キーワードが含まれる。ウェブサイトの複数の言語への翻訳の必要に対処するために、翻訳可能テキストがローカライズされる必要がある。ウェブサイトの不完全な翻訳は、外国の文字が文字化けすること、テキストが切り詰められ、又はページ上で割り振られた空間を越えて出ること、数字が英語フォーマットで現れること、及びユーザインターフェース(UI)にマッピングするのが困難な文字の、外見的にミスマッチの文字列を結果としてもたらす可能性がある。さらに、文字列の連結及び文字列の再利用は、翻訳における文法的問題を引き起こす可能性がある。数百の開発者がテキストを作成し、すべてがネイティブスピーカーなわけではなく、あるいはアプリケーションUIの言語スタイルガイドに従うわけでもない。設計フェーズにおける開発者は、継続的な技術変更なく様々な言語及び地域に適合できるソフトウェアアプリケーションを設計することを可能にする機能的適合を定義するローカライゼーション(L10n)要件を考慮する必要がある。国際的に使用されるウェブアプリケーションは、その翻訳も同然であり、該翻訳は、しばしば、コンテキストにおいてテストされない。例えば、125の機能モジュールを利用するウェブアプリケーションが、そのコンテンツを配信するために千のウェブページを含み、平均のハリーポッターの小説と同数もの翻訳すべきワード、すなわち約180,000ワードを有し、各テキスト文字列を一意に識別するために約8000のプロパティキーを必要とすることがある。
【0015】
時に、言語学者は、後に続くQAテストスクリプトを有さず、非システマティックな不備追跡を結果としてもたらす。翻訳メモリは、前に対処された問題を再発することを回避するために、アーカイブされ、後のバージョンの翻訳に伝搬される必要がある。アプリケーション及びプラットフォーム開発者は、翻訳を早期に、しばしば、及びコンテキストにおいてテストする必要があり、上記開発者は、あらゆるローカライゼーション更新をテストし、いくつかの言語を同時にテストし、機能的不備とは別個に言語的問題を追跡する必要がある。
【0016】
国際的なウェブアプリケーションは、その最初のローカライゼーションの後、単にその次の更新も同然であり、ゆえに、ウェブサイト及びアプリケーション開発者は、L10nのための維持ストラテジを必要とする。開示されるシステム及び方法は、L10nプロセスを自動化するツールを含み、開発者はL10n関連(implications)のあらゆる新しい特徴を評価し、新しいキー、ファイル、及びフォルダを一貫して命名し、ファイルのフル(すなわち、すべての)セット、新規(すなわち、前に翻訳されていない)セット、及び変更(すなわち、前に翻訳されたがソーステキストが変更された)セットに編成された翻訳可能物(translatables)のフォルダを有するローカライゼーションキットを作成する。開示される方法は、プロダクション(production)インスタンスに対する最終的なデプロイメントの前、ビルドされた言語パックをステージングした後の、言語的テスト及びバグ修正のための計画をさらに含む。国際化及びローカライゼーションを介して大規模ウェブアプリケーションを複数の言語に正確かつ効率的に翻訳する環境が次に説明される。
【0017】
環境
図1は、ロケール固有コンポーネントを追加し、テキストを翻訳することにより、国際化されたソフトウェアを特定の地域又は言語に適合させる、大規模ウェブアプリケーションのローカライゼーションのための一環境100を示す。環境100は、顧客関係管理(CRM)、販売、サービス、マーケティング、データ解析、電子商取引、及びカスタマイズされたアプリケーションのうち1つ以上を含むことができる、プロダクションアプリケーションを有するアプリケーションサーバ108を有するマルチテナントプラットフォーム106を含む。環境100は、アプリケーション又はウェブサイトを配信するためのソースコードを有するプラットフォームコードリポジトリ102をさらに含む。ソースコード言語には、これらに限られないが、JavaScript(登録商標)、Java(登録商標)、Google(登録商標) Web Toolkit(GWT)、ISML、メニュー及びフォームが含まれる。一実現例において、ソースコード管理はGitを使用して実現される。別のケースにおいて、Perforce、Subversion、又は他のバージョン制御ソフトウェアをリポジトリとして利用できる。ローカライゼーションリポジトリ105は、環境100において、新しい言語のインプロセス(in-process)翻訳及び新しいコードバージョンの更新のために、複数の言語のためのローカライゼーション翻訳のいくつかのバージョンを含む。ローカライゼーションキットが、以下に詳細に説明されるように、翻訳キー及び文字列のフルセットを保持するフォルダと、新たに追加されたキー及び文字列を保持する「新規(new)」フォルダと、ソースコードリリース及び関連づけられた言語パックの前のバージョンの後に変更されたキー及び文字列を保持する「変更(changed)」フォルダとを含む。環境100は、グローバルに配信されている複数の言語のためのプロダクション準備完了翻訳パックを保持するプロダクション翻訳リポジトリ152をさらに含む。一例示的な実現において、日本語、フランス語、中国語、及びイタリア語の言語パックがプロダクション翻訳リポジトリに存在し、上記リポジトリから、言語パックが取り出され、ローカルデスクトップ又はクラウドベースコンピュータ上のウェブアプリケーションにインストールされ得る。1つのユースケースにおいて、Nexusリポジトリを利用できる。他のユースケースにおいて、Git又は他のリポジトリを利用できる。
【0018】
続いて、環境100は、抽出ルールが正確に実行されるかどうかを決定し、タグシンタックス、バンドル名、キー名、重複、及びいくつかの引用ルールを検証するためのビルドツール122をさらに含む。ビルドツール122は、L10nソースコード検証ツール124を使用してテンプレートを調べてエラーが存在するかを決定し、疑わしい及び移植不能な(non-portable)構造、並びに翻訳システムのルールを守らないキー及び文字列にフラグを立てる(flags)。あらゆるキーが、コンテキスト限定子(context qualifier)としての予約されたキーワードと、それをページ上で一意にするさらなる要素とを使用する。例示的なルールには、各々の区別可能なキーを正確に1回使用することが含まれ、すなわちキーは一意であり、空の文字列は許容されず、バンドルは、正確に2つの部分、すなわちフォルダ名及びファイル名を有する。一実現例において、1つのファイル内のすべてのテキストが単一のバンドル内にあり、このバンドルは単一の翻訳者に進む。ビルドツール122にさらに含まれるのは、コードファイルのセットから、コメントを含む、タグ付けされたテキストを抽出するエクストラクタ132である。さらに、キーリソースチェッカー(KRC)158が、環境100において、コンテキスト的情報として翻訳者にとって意味あるキー命名規定が開発者により守られているかどうかをチェックするタグサニタイゼーション(sanitization)クリーンアップツールであり、以下に詳細に説明されるように、約20タイプのユーザインターフェース(UI)をスクリーニングする。
【0019】
環境100にさらに含まれるのが、コンピュータのオペレーティングシステムのためのコンピュータプログラムをインストールし、更新し、構成し、除去するプロセスを自動化することができるパッケージマネージャ142である。パッケージマネージャ142は、ソフトウェアの名前、その目的の説明、バージョン番号、ベンダ、チェックサム、及び、ソフトウェアが正しく実行するのに必要な依存関係のリストなどのメタデータを含むパッケージを扱う。パッケージマネージャ142は、ソフトウェア及びデータをアーカイブファイルで配布し、ソフトウェア依存関係及びバージョン情報のデータベースを維持して、ミスマッチ及び必要条件の見落としを防止することができ、手動のインストール及び更新の必要を除外することができる。
【0020】
環境100は、抽出されたタグの最初の抽出及びサニタイゼーション後のバージョンを比較するローカライゼーション検証ツール(LVT)116をさらに含み、LVT116は、以下に詳細に説明されるように、暫定(preliminary)ローカライゼーションキット及びサニタイズされた(sanitized)ローカライゼーションキットを使用してキットバージョンを比較するように構成可能なマージ後(post-merge)サニタイゼーションチェックツール118と、翻訳検証ツール119とを含む。一実現例において、LVTは、JAVAプログラミング言語を使用して書かれる。他の実現例において、他のプログラミング言語を使用できる。環境100は、最初の翻訳の間の、及びソースバージョン対翻訳されたバージョンのウォークスルーの間に使用可能な、個々の翻訳者のデバッギングパス(debugging pass)のためのデバッグツール128をさらに含む。QAによる一例示的な使用において、デバッグツール128は、翻訳の後に依然として英語であるいかなるテキストにもフラグを立て、抽出されたが翻訳されていないテキストにフラグを立てる。さらに、環境100のローカライゼーション回帰(regression)テストツール148が、翻訳された要素をウェブアプリケーションと再度組み合わせ、翻訳された要素を含むウェブページを、これらウェブページのレンダリングの自動化されたスキャンで動かす。
【0021】
環境100にさらに含まれるユーザコンピューティング装置154が、ブラウザUI及びモバイルアプリケーションの双方を介して、開発者、及び翻訳プロセスを管理するために使用するプロセス所有者に対するアクセスを管理するインターフェースを提供する。いくつかの実現例において、ユーザコンピューティング装置154は、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、パーソナルデジタルアシスタント(PDA)、デジタルイメージ捕捉装置などであり得る。
【0022】
いくつかの実現例において、環境100のモジュールは、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、又は任意の他のデータ処理システム若しくはコンピューティング装置を含む様々なタイプのものであり得る。モジュールは、異なるネットワーク接続を介してデータストアに通信可能に結合できる。例えば、マルチテナントプラットフォーム106は、ネットワーク145(例えば、インターネット)を介して、ダイレクトネットワークリンクに結合されたプロダクション翻訳リポジトリ152と結合でき、さらに、ダイレクトリンクを介してプラットフォームコードリポジトリ102に結合できる。いくつかの実現例において、ユーザコンピューティング装置154は、WiFi(登録商標)ホットスポットを介して接続されてよい。
【0023】
いくつかの実現例において、ネットワーク145は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、WiFi、WiMAX(登録商標)、電話ネットワーク、ワイヤレスネットワーク、ポイントツーポイントネットワーク、スターネットワーク、トークンリングネットワーク、ハブネットワーク、Bluetooth(登録商標)などのピアツーピア接続、近距離通信(NFC)、Z-Wave、ZigBee(登録商標)、又は、インターネットを含むデータネットワークの他の適切な構成のうち、任意の1つ又は任意の組み合わせであり得る。
【0024】
いくつかの実現例において、データストアは、1つ以上のテナントからの情報を共通データベースイメージのテーブルに記憶して、オンデマンドデータベースサービス(ODDS)を形成することができ、これは、マルチテナントデータベースシステム(MTDS)などの多くの方法で実現できる。データベースイメージは、1つ以上のデータベースオブジェクトを含むことができる。他の実現例において、データベースは、関係データベース管理システム(RDBMS)、オブジェクト指向データベース管理システム(OODBMS)、分散ファイルシステム(DFS)、ノースキーマ(no-schema)データベース、又は任意の他のデータ記憶システム若しくはコンピューティング装置であり得る。
【0025】
他の実現例において、環境100は、上記でリストアップされた要素と同じ要素を有さなくてもよく、かつ/あるいは、上記でリストアップされた要素に代わってか又は追加で他の/異なる要素を有してもよい。
【0026】
開示される技術は、データベースシステム、マルチテナント環境、又は同様のものを含む任意のコンピュータ実現システムの文脈で実現できる。さらに、この技術は、互いに協働し、通信する2つ以上の別個の及び区別可能なコンピュータ実現システムを使用して実現できる。この技術は、プロセス、方法、装置、システム、デバイス、コンピュータ読取可能命令若しくはコンピュータプログラムコードを記憶したコンピュータ読取可能記憶媒体などのコンピュータ読取可能媒体として、又はコンピュータ読取可能プログラムコードを具現化させたコンピュータ使用可能媒体を含むコンピュータプログラムプロダクトとしてを含む、多数の方法で実現できる。
【0027】
図2は、国際化及び複数の言語への翻訳のためのウェブアプリケーションフレームワークを準備し、所望のターゲット言語への翻訳のために人間の翻訳者280に転送可能なローカライゼーションキットを作成する一例示的なワークフロー200を示す。確定された(finalized)ローカライゼーションキットは、同じ時間間隔の間、必要とされる数のターゲット言語への翻訳のために複数の翻訳者に送信できる。
【0028】
開発者210は、継続的な技術変更なく様々な言語及び地域に適合できるソフトウェアアプリケーションを設計することによりローカライゼーションについて計画し、コード及びテキストを分離し、コードを準備し、テキストの準備を可能にする。リソースバンドルが、各々の一意の文字列について一意のプロパティ値を有するキー値ペア(key-value pairs)の集合として記憶される。国際化のルールには下記が含まれる:コードからの抽出のためにローカライズ可能/翻訳可能テキストをマーク付けすること、テキストをUIテンプレートに移動すること、翻訳可能テキストのためにフルセンテンスを使用すること、及び、次に示されるように、センテンスを形成するためのテキストの連結を回避すること。ワード順序が言語で変わることがあり、数字又は文字列に対して動的に生成された参照のために使用される文字列のパラメータは、コードが実行されるとき、目下の文字列の文法にさらに影響することがある。
"Dear "+cust.getSalutation()+" "+cust.getLastName()+", welcome back"
【0029】
国際化のためのルールを続けると、開発者は、単数形使用のために1つの文字列、及び複数形使用のために1つの文字列を作成し、テキストが何に関するか、及びそれが如何にして使用されるかを説明するキーを提供し、テキスト内のHTMLマークアップを回避し、ユーザのためのデータが正しいロケール内であること、例えば、テーブルヘッダが企業オブジェクトの属性名であるとしてもテーブルヘッダがUIロケール内であることを確保する必要がある。テーブルコンテンツは、それが「削除」リンクなどのUIの一部であるときを除き、データロケールに属する。
【0030】
使用されるプログラミング言語及び技術において特殊な意味を有し得る文字で、特殊なケアが行われる必要がある。いくつかのケースにおいて、これは、(文字列リテラルを区切るために使用される)ダブルクォート及びアポストロフィを含み、他のケースにおいて、コロンを含む。こうした文字は、それぞれのプログラミング言語の適切なエスケープシーケンスにより扱われる必要がある。例えば、アポストロフィは、言語ごとに別様に取り扱われ、翻訳の後のテキストに入り、コード機能性変更を取り込むことができる。コロンもまたコードを破壊する可能性がある。
【0031】
マークアッププロセスの間、開発者210は、そのコードベース内に特殊マークアップ及びコードクラスに対する参照を含み、翻訳可能テキストをマーク付けする。これらタグ及びコードクラスに対する参照は、UIのローカライズされたバージョン内に示される必要のあるテキストをマーク付けする。これらは、2つの目的のため、すなわち、実行時、(バンドル及びキーにより定義されたとおり)テキストのローカライズされたバージョンをルックアップするため、及び影響あるファイルからのすべての翻訳対象テキストの自動化された抽出のために使用される。いくつかのケースにおいて、これらは、次に示されるマークアップなどの特殊HTMLタグである。
<ISTEXT bundle="customer.customergroup" key="field.type.select" default="Select type"/>
【0032】
他のケースにおいて、これらは特殊なJSPタグであり得る。一実現例において、開発者210はそのコードベースに、2つのコードクラス、パブリックAPIとしてのLocaleHelperと実装のためのLocalizationHelperとを含み、マークアッププロセスにおいて、及び翻訳を引き込むことにおいて使用されるISMSGモジュールを含むことができる。
<ISINCLUDE template="inc/Modules">
【0033】
ISMSGタグは、UIのローカライズされたバージョンに示される必要のあるテキストをマーク付けする。これらのタグの内部に、バンドル及びキー名のパラメータ、及び、ルックアップがいかなるローカライズされたバージョンも見つけることができないときのためのテキストのデフォルトバージョンのパラメータがある。任意選択で、テキストはいくつかのパラメータを指定してよく、該パラメータはその後、さらにタグの一部である。簡素なユースケースが次にリストアップされる。
<ISMSG bundle="customer.customergroup" key="field.type.select" default="Select Type"/>
【0034】
このメッセージは、バンドル名からわかるように、ファイルcustomer/CustomerGroup.ismlで見つけることができ、フォームの一部であり、顧客グループタイプを選択するドロップダウンである。次にリストアップされるのはより複雑なユースケースであり、これは、ユーザグループのIDを含む、パラメータ化されたブレッドクラム(breadcrumb)を示す。
<ISMSG bundle="customer.customergroup" key="breadcrumb.rest" default="{0} - General" param0="#CustomerGroup:ID#"/>
【0035】
図2を続けると、開発者210は、コードマークアップ220を完成し、ISMSGタグ内にローカライズされるテキストをラッピングし、次に示されるパラメータを使用し、カスタムユーザ定義JSPタグを使用して任意の必要とされるパラメータURLをインポートする。カスタムタグを含むJSPページがサーブレットに翻訳されるとき、タグは、タグハンドラと呼ばれるオブジェクト上の動作にコンバートされる。ウェブコンテナが、その後、JSPページのサーブレットが実行されたときに上記動作を呼び出す。
<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>
【0036】
ExtJSライブラリを使用するJSを含む静的JavaScript(JS)のマークアップは、2つのステップを利用する。JSがそのようなものとしてアプリケーションによってでなく実行時にブラウザにより実行されるため、ローカライズされたテキストは実行時にブラウザに転送される必要がある。コールしているUIページは、次に示されるように、ローカライゼーションデータを引き込む必要がある。(いくつかのケースでは、これはISML内にある。)ローカライゼーションは、このケースにおいて間接的である。テンプレートは、JSが次いで使用するデータを提供する。いくつかのケースでは、翻訳対象テキストのマークアップは、下記の例のように見えることがある。
field: l10n("js.file", "key", "text")
【0037】
ローカライゼーションデータに対する参照は、下記の例のように見え、取り囲んでいるUIページ内で特殊HTMLタグを使用することができる。
<isinclude url="#URL(Action('ViewApplication-GetResourceBundle'), Parameter('BundleName','js'),Parameter('l10ndebug',l10ndebug))#">
【0038】
開発者210は、LocaleHelperパブリックAPIコードクラスを使用してJavaを扱い、バンドル名で特殊ケアを行い、次にリストアップされるように、マップでパラメータを提供する。
LocaleHelper.translateString("java_bc_catalog.Class", "key", "text")
【0039】
いくつかのケースにおいて、開発者210は、ISMSGタグを介して、UIテンプレート内にツールチップを扱うショートカットを作成することができ、ツールチップのためのキーを提供する。いくつかの実現例において、属性のツールチップは、オブジェクト定義に由来し得る。時に、開発者210は、翻訳者のための注記を追加する必要があり、例えば、パラメータが何を意味するかを説明する。これらコメントは、抽出され、翻訳者のために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
【0040】
一例示的なユースケースにおいて、1000ウェブページを含む広大なウェブアプリケーションを介して配信される既存のアプリケーションについて、6人の開発者が約180,000のキーでテキストをマークアップするために各々2か月間作業することを求められ、5人のQAテスタが結果的なコード破壊を見つけるためにチェックするのに5週間作業し得る。
【0041】
図2を続けると、開発者210は、プラットフォームコードリポジトリ102にマークアップされたコードを記憶し、ソースコード222をビルドツール122に送信する。ビルドツール122は、L10nソースコード検証ツール124を使用して、マークアップが正しく、それにより、抽出プロセスが成功裏に実行できることを検証する。L10nソースコード検証ツール124は、エクストラクタ132にアクセスしてリソースバンドル225を抽出し、これは、キー名文字列及びマークアップされた翻訳可能物の位置を特定するために使用される抽出されたタグを含む。一例において、エクストラクタ132は、マークアップを実行するとき、翻訳可能物が意図されたとおり抽出されることをさらに検証することができ、アプリケーションのデプロイメントの間のパラメータハンドリングをチェックする。いくつかの実現例において、スキャンツールが利用されて、抽出されなかったテキストを見つけることができ、ゆえに、開発者によりまだマークアップされておらず、ゆえにそれぞれのローカライゼーションキットが翻訳されたときに英語のまま残るであろう箇所を識別する。
【0042】
プロセス所有者270は、すべてのプロパティファイルをその現在のステートにおいて含む「フル」フォルダと、まだ翻訳されていない文字列を有する「新規」フォルダと、前の最終的なローカライゼーションキット以後にソース言語が更新された文字列を含むファイルを有する「変更」フォルダとを含むディレクトリ構造を有する暫定ローカライゼーションキットとして、抽出されたリソースバンドルを受信する。一実現例において、抽出された暫定ローカライゼーションキットラベルは、抽出の日付を含む。「フル」フォルダは、すべての言語におけるすべてのキーを含み、ローカライゼーションキットは、これらが言語関連コンテンツのみ含むとき、コードリリースから独立している。開発者は、特定のコードバージョンについて、正確にこのコードバージョンのための翻訳対象テキストを含むローカライゼーションキットを抽出し、プロセス所有者が前のローカライゼーションキットに対するアクセスを有する限り、翻訳プロセスを完了して言語パックを配信することができる。結果的な言語パックは、複数のコードバージョンで使用できる。
【0043】
翻訳可能物の最初のマークアップの一部として、文字列を一意に識別するために使用されるキーは、翻訳者がUIにおけるその言語的コンテキストを理解するのに役立つ必要がある。すなわち、文字列が表示されることになるUI要素のタイプを知ることは、翻訳者が正しい用語、文法の異形(例えば、不定詞、フルセンテンス、命令法等)、及び句読点を選択することを可能にする。例えば、「ヘディング」、「メッセージ」、又は「ボタン」であるソーステキストの翻訳は、大文字及び小文字の使用、及び能動スタイル又は受動スタイルの使用、並びに動詞の不定詞又は命令法で異なり得る。「button.new」キーの例において、バンドルは、例えば、それが新しい顧客を作成するために使用されるボタンのラベルであるというコンテキストを与える。
【0044】
キー名は、翻訳者ツール内でコンテキストを示し、人間の翻訳者が用語的及び文体的エラーを最小限にするのに役立ち、ゆえに、正確な名前が必要とされる。第1の要素は、ページ内のどこにキーが出現するかを合図することができ、例えば、table/table.headerについて、キータイプ、次いで識別が後に続くなどである。キーの異なる要素が、ドットにより区切られる。1つの要素が複数のワードを含む場合、開発者210は、error.no_fileについてはこれらをアンダースコアで区切り、あるいは、error.NoFileについてはキャメルケース(CamelCase)を使用し、介在するスペース又は句読点なくフレーズの中間の各ワード又は略語が大文字で始まるように複合ワード又はフレーズを書く。開発者は、タブ、ボタン、フィールド、ブレッドクラム、エラー、及びリンクを含む特定のUI要素にマッチする許容されたキーワードを有するプロパティキータイプのリストを使用する。自然言語文字列が複数の部分に分けられる必要があるとき、開発者は、すべての部分について同じキーを使用し、キーの終わりにシーケンス番号を追加し、それにより、リソースバンドル(さらにリソースファイルとして参照される)がソートされたとき、キーは順番のままである。
【0045】
プロセス所有者270は、開発者210から受信した抽出されたバンドルを、KRC実行226を介してキーリソースチェッカー(KRC)158に送信して、約20タイプのユーザインターフェース(UI)要素についてスクリーニングし、キー命名規定、すなわちUI要素を正しく識別する定義されたキーワードの存在が、コード開発者により守られているかどうかをチェックする。これは、
図4A及び
図4Bに示され、以下で説明される。一実現例において、抽出されたバンドルは、送信される前にzip圧縮される。KRC158に対する入力は、現在のリリースにおいて変更された、値が変わったキー(すなわち、ソース言語内のテキスト文字列)を示す変更されたプロパティと、現在のリリースにおいて追加されたキー(すなわち、ソース言語内に新たに追加されたテキスト)のための新しいプロパティとを含む、抽出されたプロパティファイルのセットを含む。
【0046】
KRC158は、暫定ローカライゼーションキット内のキーを人間のローカライゼーションエキスパートに提示し、暫定ローカライゼーションキットに対してタグ名規定強制ツールを実行するように構成可能なタグサニタイゼーションクリーンアップ及び例外生成ツールセットを含む。タグ名規定強制ツールは、抽出されたキーを解析し、キー名文字列及び翻訳可能テキスト(デフォルト、及び、任意選択で元の)の位置を特定し、次いでキー命名ルールを適用し、キー命名ルールは、有効なキーワードのリストからの、テキストが出現するところのそれぞれのUI要素を識別する少なくとも1つの承認されたキーワードの存在を必要とし、キー一意性、すなわち、マッチする値か異なるキーかのいずれかを必要とする。ツールは、人間のローカライゼーションエキスパートによる完成のためにバグレポートスタブ(stubs)を作成するようにさらに構成可能であり、バグレポートスタブ内に、解析されたキー名文字列にキー命名ルールを適用することにより生成されたタグ例外からのコンテキストを含み、例外をトリガしたキー名に関して、完成バグレポート内に含めるために人間のローカライゼーションエキスパートからのさらなるコメントを受け入れる。ツールは、人間のローカライゼーションエキスパートからの翻訳可能テキストに対する編集を受け入れ、開発者による処理のために受信したキー名及び編集した翻訳可能テキストを使用してサニタイゼーション訂正ファイルを生成することができる。KRC158は、サニタイゼーション訂正ファイル236をプロセス所有者270に返し、プロセス所有者270は、訂正ファイルをレビューし、サニタイゼーション要求をサブミットし、バグレポート238をサブミットする。プロセス所有者270は、レビュー及び組み込みのためにサニタイゼーションを転送する。サニタイゼーション、すなわち、すべての新規の及び変更された文字列の正規化には、スタイルガイド及び用語集の固守のために用語、句読点、スペリング、及びスタイルを変更すること、並びに、連結又はパラメータの順序などの潜在的なローカライゼーションの問題を解決することが含まれる。サニタイゼーションには、シングル又はダブルクォートについてなど、任意の必要なエスケープシーケンスを適用することが含まれる。一実現例において、プログラムエスケープシーケンスルールを示唆又は自動訂正としてサニタイゼーションに含むことができる。
【0047】
開発者210は、サニタイゼーション結果をレビューし、プラットフォームコードリポジトリ102に組み込み、サニタイズされた文字列をマスタコードに戻してマージして、リリースのための向上した英語ソースUIを準備する。開発者210は、サニタイズされたソースコード242をビルドツール122に送信し、ビルドツール122は、リント(lint)を使用して、サニタイズされたマークアップが正しいことを検証する。いくつかのユースケースにおいて、新しいコンテンツの範囲がそれを保証する場合、サニタイゼーションのQAレビューが行われてよい。
【0048】
図2に示される人間の翻訳者による翻訳のためのローカライゼーションキットを準備するプロセスを続けると、開発者210は、サニタイズされたリソースバンドル244を抽出し、プロセス所有者270は、開発者210から受信した抽出されたサニタイズされたバンドルをKRC実行246を介してキーリソースチェッカー(KRC)158に送信する。一実現例において、抽出されたサニタイズされたバンドルは、送信される前にzip圧縮される。KRC158は、サニタイズされた訂正ファイル256における訂正のレポートをプロセス所有者270に返し、プロセス所有者270は、サニタイゼーション変更が組み込まれたことを検証する(258)。プロセスは、サニタイゼーションを検証すること(266)と、レビュー及び組み込みのためにサニタイゼーションを転送すること(234)と、開発者210のレビュー及び組み込み(240)とを反復する。同じままであったキーは抑制され(suppressed)、開発者はこれらサニタイゼーションをマージする。いくつかのケースにおいて、人間のQAエキスパートが、訂正がリリースブランチにマージされるための要求を承認しなければならない。その後、新しい及び向上した英語がプロダクション環境においてライブ(live)であり、引き出されるローカライゼーションキットは翻訳のためのクリーンソースである。プロセス所有者270は、ローカライゼーションキットの改訂されたバージョンを受信し、KRCを実行し(246)、最終的なローカライゼーションキットをコミットすること(276)に至る(leading to)。プロセス所有者270は、暫定ローカライゼーションキットと、サニタイゼーション訂正ファイルがマージされたサニタイズされたローカライゼーションキットとを使用して、キットバージョンを比較するように構成可能な、マージ後サニタイゼーションチェックツール118を含むローカライゼーション検証ツール(LVT)116を使用してサニタイゼーションを検証する。これは、
図5に示され、以下で説明される。LVTは、選択された暫定ローカライゼーションキットをサニタイズされたローカライゼーションキットと比較する変更確認ツール117を実行し、暫定ローカライゼーションキット及びサニタイズされたローカライゼーションキット内のファイルの総数をカウントし、比較し、レポートし、暫定ローカライゼーションキット及びサニタイズされたローカライゼーションキット内の対応するファイル間でキーコンテンツの差を比較し、レポートし、暫定ローカライゼーションキット及びサニタイズされたローカライゼーションキット内の対応するファイル間の値のパラメータ(parameters-in-values)の差を比較し、レポートする。
【0049】
暫定ローカライゼーションキットと最終的なローカライゼーションキットとの間のデルタが、返されたサニタイゼーションにマッチするとき、ローカライゼーションキットは、翻訳される準備完了とみなされる。いくつかの予期された変更がレポートされない場合、QA人員が、開発者が無視したマージコンフリクトがあったかを調査する。ステップは、いかなるエラーも解決するように繰り返すことができる(268)。一実現例において、マージ後サニタイゼーションチェックツール118は、選択された暫定ローカライゼーションキットのフルフォルダ内のファイル数をカウントし、サニタイズされたフルローカライゼーションキットのフルフォルダ内のファイル数をカウントし、選択された暫定ローカライゼーションキットのフルフォルダ内のファイル数のカウントをサニタイズされたローカライゼーションキットのフルフォルダ内のファイル数のカウントと比較する。チェックツールは、さらに、選択された暫定ローカライゼーションキット内の各フォルダ(フル、変更、及び新規)内の各ファイルのキーコンテンツを、サニタイズされたローカライゼーションキット内の同じフォルダ名(フル、変更、及び新規)を有するフォルダ内の同じファイル名を有するファイルのキーコンテンツと比較する。チェックツールは、さらに、選択された暫定ローカライゼーションキット内のファイルにわたる値のパラメータを、サニタイズされたローカライゼーションキット内のファイルにわたる値のパラメータと比較し、暫定ローカライゼーションキットのフルフォルダ内のファイルのカウント及びコンテンツを、サニタイズされたローカライゼーションキットのフルフォルダ内のファイルのカウント及びコンテンツと比較した結果を表示するマージ後サニタイゼーション訂正レポートを生成し、暫定ローカライゼーションキット内のフル、変更、及び新規フォルダと、サニタイズされたローカライゼーションキット内のフル、変更、及び新規フォルダとにおいて比較された同名ファイルの各ペアについて、キーの差をファイル名ごとにリストアップし、暫定ローカライゼーションキット内のフル、変更、及び新規フォルダと、サニタイズされたローカライゼーションキット内のフル、変更、及び新規フォルダとにおける、値のパラメータの差をフォルダ名ごとにリストアップする。
【0050】
さらに
図2を続けると、いくつかの実現例において、プロセス所有者270は、解析により指示された変更で、又は及びローカライゼーション検証ツール(LVT)116を実行した結果に対する応答で反復する。サニタイズされたローカライゼーションキット266が検証された後、開発者210は、ローカライゼーションリポジトリ105に最終的なローカライゼーションキット(FLK)をコミットし(276)、プロセス所有者270は、人間の翻訳者280に最終的なローカライゼーションキットを送信する(288)。一実現例において、翻訳者は、翻訳されるキー値ペアのフォルダを有する単一のzip圧縮されたファイルを受信する。他の実現例において、ローカライゼーションキットは、別様にパッケージ化できる。確定されたローカライゼーションキットは、memoQなどのコンピュータ支援翻訳ツール(CAT)を通して実行される。一実現例において、CATツールの翻訳メモリツールが、ターゲット言語に対して新しい、ファジーマッチの、非翻訳可能物を決定するために利用される。いくつかのユースケースにおいて、機械翻訳ツールがCATに接続でき、それにより、人間の翻訳者により編集される機械翻訳(MT)ドラフトが準備できる。
【0051】
別の実現例において、異なるツールが使用されて、人間の翻訳者をサポートし、複数の異なる言語に対する翻訳を完成させてよい。一実現例において、ローカライゼーションキットは、英語からフランス語、日本語、ドイツ語、イタリア語、及び中国語に翻訳できる。別のケースにおいて、キットは、開示される方法及びシステムを使用して、多くの他の言語に翻訳できる。一例において、確定されたローカライゼーションキットについて、4つの言語の各々について1人の、4人の翻訳者のグループが、各々1週間作業して4つの言語への翻訳を完成させる。
【0052】
図3は、最終的なローカライゼーションキットの翻訳者280からの翻訳318を受信し、すべてのファイルが含まれること及びテキストのすべてが指定された言語にコンバートされたことの品質保証テスト及び検証を完了する一例示的なワークフロー300を示す。ワークフロー300は、言語のフルセットを実現するフルにQAテストされた言語パックのプロダクションをさらに含む。
【0053】
翻訳ツール及び編集を使用する人間の翻訳者又は翻訳プロジェクトマネージャは、エラーを取り込む可能性がある。例えば、キーが失われ、あるいは破損される可能性があり、パラメータが失われ、あるいは破損される可能性があり、ファイルのエンコーディングが間違っていることがあり、特定の文字のためのエスケープルールが守られていないことがある。
【0054】
図3を続けると、プロセス所有者270は、ローカライゼーションリポジトリ105に翻訳をコミットし(316)、翻訳されたローカライゼーションキットをローカライゼーション検証ツール(LVT)116に送信して、翻訳されたキットが完成であることを検証する(326)。LVT116は、以下で
図7について説明されるように、ファイル数が正しいこと、各プロパティファイル内のキー数が正しいこと、及びパラメータが破壊されていないことを確保する翻訳検証ツール119における自動化されたテストにより、立証する(validates)。プロセス所有者270は、修正及び更新338を翻訳者280に伝達し、ローカライゼーション検証ツール(LVT)116を使用してファイル構造及びコンテンツのさらなる修正及び更新336をテストする。プロセス所有者270は、開発者210にビルドのために更新された翻訳を転送し(344)、開発者210は、ローカライゼーションリポジトリ105に修正され、更新された翻訳をコミットし(346)、言語パックをビルドする(356)。QAテスタ304が、以下で詳細に説明されるように、デバッグツール128を使用して言語パックを検証する(364)。
【0055】
図3により説明されるプロセスをさらに続けると、言語パックが配信された翻訳にマッチするという自動化されたツールによる立証の後、QAテスタ304は、プロセス所有者270に対して言語パック(LP)検証を確認し(366)、開発者210による組み込みのためにLPを転送し(365)、翻訳者により、それぞれのキットの翻訳者280でのすべての翻訳された言語の共同ウォークスルーを介して(376)、ウェブアプリケーションのテストインスタンスでコンテキストにおいてテストする。開発者210は、新しい及び変更された文字列に基づくテストスクリプトを準備するQAテスタ304、しばしば言語エキスパートのために、言語パックテストインスタンスをデプロイする(372)。テストスクリプトは、翻訳者を正確なページに導き、ゆえに、皆がソース言語におけるUIを見て、各翻訳者が、翻訳者が翻訳したバージョンを見る。一実現例において、QAテスタ304との議論の後、翻訳者が識別されたエラーを修正し、翻訳会社がファイルの更新されたセットを送り返す。いくつかのウェブアプリケーションコードについて、技術チームは、言語変更についてさえ、コードベース全体をリビルドしなければならない。他の実現例において、言語パックのみがリビルドされる。現在の言語パックに対する修正を比較するレポートが、
図12A及び
図12Bに示され、以下で説明される。
【0056】
各言語についての、コンテキストにおける、変更された及び新しい特徴のテストの後、及び、翻訳者280との間で調整して、翻訳されたファイルに修正を適用し(388)た後、プロセス所有者270は、翻訳者280から修正された翻訳を受信し、回帰テスト384のためにQAテスタ304に最終的な言語パックを転送する(386)。1つのユースケースにおいて、自動化されたテストは、ウェブアプリケーション表示内のあらゆるウェブパネルが外国語で表示することを確認する。一実現例において、QAテスタ304は回帰テストを実行し(384)、いくつかの実現例において、翻訳されたウェブアプリケーションの10~15パーセントをカバーする。翻訳回帰テストツール148は、選択された言語について、ウェブアプリパネルに対する変更にわたり反復し、人間の視覚的検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字がウェブアプリパネルを破壊しないことを検証する。いくつかのケースにおいて、回帰テストツール148は、選択された言語について、ウェブアプリパネルに対する変更にわたり反復し、機械検査のためのウェブアプリコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字がウェブアプリパネルを破壊しないことを検証する。
【0057】
1つのツールが、自動化されたテストを実行して、ウェブアプリケーションサイト内のすべてのページがメニュー上でクリックすることにより到達されることができることを検証する。このことは、アプリ内のページが空でレンダリングされず、選ばれた言語で表示することを検証する。自動化されたコンテキスト内(in-context)テストが、すべてのサポートされた言語のためのすべてのテストケースを含む単一のコアモジュールをコールする。自動化されたコンテキスト内検証ツールは、パラメータについて各々のサポートされた言語について、指定された言語パックを使用する。1つのユースケースにおいて、テスト論理が、XceptanceによるカスタムXLTモジュールを通して実行され、これは、指定された言語パック及びそのキー値ペアを調べ、テスト下のパネルにナビゲートして検証すべきUI要素を見つける。テストは、言語パック内で指定された、取得された値が、ウェブページ上にレンダリングされたUI要素内のテキストにマッチすることをアサートする(asserts)。自動化されたコンテキスト内テストは、1つでもミスマッチが見つけられた場合、失敗することになる。いかなる例外又はメッセージも、ライブログファイルに書き込まれる。自動化されたコンテキスト内検証テストは、言語パック限定(qualification)プロセスの間にテスタのマシン上でローカルに、あるいは統合環境内で開発サイクルの間に連続的に実行できる。各々のサポートされた言語の言語パックはローカルジョブ内で指定でき、ローカルジョブはいつでも実行するように設定できる。
【0058】
図3に示されるプロセスを続けると、回帰テストの結果387がプロセス所有者270に転送され、プロセス所有者は、修正を適用し、翻訳されたLPを立証し、開発者210にデプロイメントのために最終的な言語パックを転送し(394)、開発者210は、プロダクション翻訳リポジトリ(PLD)152、言語パックをデプロイするのに使用可能なコードリポジトリ内に、確定された言語パックを持続する(persists)(396)。翻訳されたLPの立証には、
図12C及び
図12Dに示され、以下に説明されるように、新しい言語パックを元の言語パックと比較するレポートを実行することを含むことができる。一実現例において、自動化されたシステムは、ファイルをPLD152に追加する前にバージョン情報を追加し、PLD152からは、これらをデプロイできる。プロセス所有者270は、言語パックがプロダクションマシンに対するデプロイメントの準備完了であることをオペレーションチームに通知する。一実現例において、LPを構成するリソースファイルの自動化された検証が完了したとき、これらは、このリリースのための専用テストインスタンスに、さらに、後方互換性をチェックするために最も最近のグローバルリリースXX.x-1からのテストインスタンスにももう1度デプロイされ、なぜならば、グローバルに適用される言語パックは、プラットフォームのグローバルリリースXX.xプレビューインスタンスにデプロイされたとき、同じPOD上のXX.x-1プロダクションインスタンス上でも利用されることになるからである。いくつかの実現例について、QAテスタ304は、回帰のためのさらなるスポットチェックを完了する。デプロイされた言語パックは、多くの実現例において、アプリケーションコードのソース制御システムに対してさらにコミットされる。ウェブアプリケーションの4つの言語への翻訳についての一例示的な実現において、1つの言語パックが4つのzip圧縮されたファイルとしてすべての4つの言語を含み、これが、テストインスタンスにデプロイされ、テストが完了した後にソースコードリポジトリにコミットされる。
【0059】
図4Aは、一例示的なキーリソースチェッカー(KRC)158を示し、これは、コンマ区切りテキストとして入力された許容されたキーワードである、UI要素422を識別するワードのセットに対して、プロパティキー名を検証するキー名検証ツールである。この例において、ツールは、「変更」フォルダ内のプロパティファイル412をテストする。
図4Bは、変更フォルダ内のプロパティファイルに対して
図4Aに示されるレポートを実行することにより生成されたレポートを示す。レポート例において、key:customerCdnshelp.2.1.2 476が、許可されたキータイプでないとリストアップされている。QAテスタ304は、この情報を使用してバグレポートを完成させ、開発者にこれらキーをリネームするように依頼することができ、なぜならば、ローカライゼーションエキスパート及び翻訳者がキー名により、キーがコラム、ラジオボタン、タイトル、エラーメッセージ、ボタン、又は他の要素を指し示すのかどうかを知る必要があるからであり、ゆえに、翻訳者は、翻訳するときに正しい文法的スタイル及び用語を選び、コンテキストにおいてテストするときにページ上のそれぞれのUI要素の位置を特定することができる。バグレポートスタブコンテキストは、キー命名ルールを解析されたキー名文字列に適用することにより生成されたタグ例外からであり、人間のローカライゼーションエキスパートは、例外をトリガしたキー名に関してさらなるコメントを追加することができる。図示される例において、バグレポートは、コンテンツ開発ネットワークチーム(Cdns)に送付できる。いくつかのケースにおいて、開発者は、キーリソースツールに対するアクセスを有する。いくつかの実現例において、アプリの新しいリリースの配信をスローダウンさせることを回避するために、誤ったキー名を使用して当座の翻訳が継続することになり、次のリリースにおいて、開発者はバグレポートに応答することになり、それにより、コードは改善され、キーはより記述的になる。
【0060】
図5は、一例示的なローカライゼーション検証ツール(LVT)116を示し、これは、新しいローカライゼーションキットバージョン512、サニタイゼーション訂正ファイルがマージされた、サニタイズされたローカライゼーションキットを、元の又は暫定ローカライゼーションキット522と比較するように構成可能なマージ後サニタイゼーションチェックツール118インターフェースを含む。この例において、2017-01-19fullは、テキスト正規化又はサニタイゼーションを実行する人間のローカライゼーションエキスパートが作業した、抽出されたISMSGタグを含む。人間のローカライゼーションエキスパートは2017-1-30にサニタイゼーションを終了し、サニタイズされたコードを挿入して更新されたコードベースにするようにマージが実行された。次いで、最終的なローカライゼーションキットを生成するように抽出が実行された。最終的なローカライゼーションキットに対しては、比較が実行できる。
【0061】
図6Aに示されるレポート600は、QAテスタ304がサニタイゼーションのレポートされた適用と意図された変更とを手動で比較し、2つの文書、すなわち、レポートと、マージのためにサブミットされたサニタイゼーションファイルの各々とを一度に見ることを可能にする。一例において、20のサニタイゼーションファイルがマージのためにサブミットされる。いくつかの実現例において、比較は自動化できる。異なる結果が、ローカライゼーションキットの異なるバージョンの比較から得られる。例えば、ユーザは、比較を実行すべき新規、変更、又はフル抽出を選択することができる。例示的なレポート600は、元のキットのFULL612とサニタイズされたキットのFULL622とを比較した結果を示し、結果が同じであるところ及び結果が同じでないところを示す。サニタイズされたキットのコンテンツは、デプロイメントに送り返されたものにマッチするべきであり、開発者の技術チームにより変更が組み込まれたことを確認する。3つのキーメッセージが異なる値を有するキーを示し、なぜならば、センテンスの終わりにピリオドが追加されたからである(652)。いくつかのキーメッセージ662が現れ、なぜならば、シングルクォートが見つけられないからである。これは、レポート600内に「異なる値」メッセージを結果としてもたらし、なぜならば、開発者が2つのシングルクォートを1つのダブルクォートに変更したからである。レポートは、元のフルとサニタイズされたフルとの間の差のみ示す。一実現例において、さらなるプログラミングが、サニタイゼーションファイル内のキーのすべてが更新されたことを自動的にチェックすることができる。
【0062】
図6Bは、訂正が適用される前の一例示的なサニタイゼーション訂正ファイルを示す。この例では、preferences_new_2017-02-27.propertiesバンドル602について、行4(604)において、角括弧606が使用され、アポストロフィで置換される必要がある。さらに、行5(605)において、ワード値608が大文字で書かれる必要がある。
図6Cは、エラーを訂正するために適用されるべき変更、すなわち、サニタイズされたプロパティを示す。行4はコメントアウトされ、行5(632)が追加されて行4を置換し、角括弧をアポストロフィ638で置換する。行7はコメントアウトされ、行8(642)で置換され、「value」の小文字vを大文字V648で置換する。
図6Dは、サニタイゼーションの後のキー値ペアを示し、すなわち、アポストロフィ678及びワード「Value」688がローカライゼーションキットのサニタイズされたバージョン内に正しく表される。
【0063】
図7Aは、マージ後サニタイゼーションチェックツール118及び翻訳検証ツール119を含むローカライゼーション検証ツール(LVT)116を介したソース及びターゲットローカライゼーションキットの一例示的な比較を示す。LVTは、翻訳者により提供されたターゲットローカライゼーションキット742と、サニタイズされたローカライゼーションキットのフル712、変更722、及び新規732を比較するように構成可能である。一実現例において、ローカライゼーション検証ツール119は、少なくともキー名とソース言語における翻訳可能テキスト文字列とを有する抽出されたタグを含む最終的なローカライゼーションキットを人間の翻訳者に対して転送し、追加され又は置換された翻訳されたテキスト文字列を有する抽出されたタグを含む翻訳されたキットを人間の翻訳者から受信し、翻訳されたキットを人間のローカライゼーションエキスパートに提示することができる。翻訳検証ツール119は、翻訳されたターゲットローカライゼーションキットを最終的なソースローカライゼーションキットと比較する変更確認ツールを実行し、最終的なソースローカライゼーションキットと共に翻訳されたキット内のファイルの総数をカウントし、比較し、レポートし、最終的なローカライゼーションキットと共に翻訳されたキット内の対応するファイル間のキーコンテンツの差を比較し、レポートし、最終的なローカライゼーションキットと共に翻訳されたキット内の対応するファイル間の値のパラメータの差を比較し、レポートし、人間のローカライゼーションエキスパートからの翻訳可能テキストに対する編集を受け入れ、最終的な翻訳されたキットを持続ストレージにコミットする。
【0064】
図7Bは、
図7Aに示されるツールを実行した結果のレポートを示し、ターゲットにおいてファイルが4つ少ないことを示す(765)。このケースにおいて、ローカライゼーションプロセス所有者は、開発下の新しい特徴のために、自身が翻訳者にまだ作業してほしくなかった4つのファイルを抑制するように意図的に依頼した。1つのユースケースにおいて、エラーメッセージが英語のみで表示され、なぜならば、エラーコードが翻訳されないからであり、メッセージは、APIに内在する理由でシングルクォートを使用し、すなわち、二重のシングルクォートが、ダブルクォート、コードを破壊するであろう文字としてレンダリングされる。ツールはまた、値が引き込まれるコードプレースホルダーをチェックして、コードが翻訳により破損されなかったことを確保することができる。
図7Bのレポートは、送信されたものと返信で受信されたものとの間で差が見つからなかった結果(776)を示し、これは、望ましい結果である。
【0065】
翻訳検証ツール119は、最終的なローカライゼーションキットの改訂されたバージョンを転送することと、翻訳されたキットの改訂されたバージョンを受信することと、変更確認ツールを実行することと、翻訳可能テキストに対する編集を受け入れることとにわたり反復し、最終的な翻訳されたキットのコミットに至ることができる。いくつかの実現例において、最終的なローカライゼーションキット及び翻訳されたキットは、別個のフォルダ、すなわち、コードベースからの抽出のフルセットの、フルフォルダと、コードベースからの前の抽出の後に変わったタグの抽出の、変更フォルダと、前の抽出が行われたときにコードベースに存在しなかったタグの抽出の、新規フォルダとを含む。
【0066】
図8は、
図2及び
図3のワークフローにおいて図示され、上記で詳細に説明されたように、ウェブサイトの要素を複数の言語に正確に翻訳し、プロダクション使用のためにプロダクションサーバに言語パックを配信するプロセスの概要を示す。アプリの顧客は、言語パックコンテンツを見ることができる。時刻スタンプ、日付スタンプ、及び通貨が、異なるロケールについて異なる可能性がある。一実現例において、バンドルされたファイルのフォルダは、ロケールごとに1つのファイルセットを含む。一例において、ドイツ語ロケールは、オーストリア、リヒテンシュタイン、及びルクセンブルグを含む。
【0067】
言語パックは、コードから独立してデプロイできる。もはや使用していないキーが削除されないことを確保するために、言語パックは、新たに翻訳された言語パックを、前にデプロイされた言語パックとマージする。すなわち、もはや翻訳に必要とされないキーが依然としてコード内に存在することができ、翻訳は、アプリケーションを配信するコードを破壊するようには許容され得ない。一例において、フランス語において、恐らく会社名を除き、すべてのワードが翻訳されるべきである。対照的に、イタリア語において、多くの英語ワードが使用され、例えば、okである。別の例において、日本語は、時に英語ワードを、そのアルファベットの最も近い対応する文字を使用して字訳する。複数の言語に翻訳される必要がある一例示的なアプリインターフェースページが次に説明される。
図9Aは、翻訳される要素の一例示的なユーザインターフェース(UI)セグメントを示し、サイトプリファレンス(Site Preferences)942を含む。
図9Bは、
図9Aにおけるサイトプリファレンス942の選択の後に視認できる、A/Bテスト936を含むサイトプリファレンス926のUIセグメントを表示する。
図9Cは、イタリア語で
図9Aの例示的なUIセグメントを表示し、「Preferenze del sito」982を含む。
図9Dは、フランス語への翻訳の後の、
図9Aの例示的なUIセグメント、「Preferences du site」986を示す。
図10Aは、サイトプリファレンス926におけるA/Bテスト936の選択の後に視認できるUIコンテンツを表示し、
図10Bは、日本語に翻訳されたA/Bテストサイトプリファレンスを表示する。
【0068】
翻訳者は、翻訳活動をサポートするための市販のツールを使用する。一実現例において、memoQが翻訳者により使用可能であり、翻訳者は、開示の技術を使用して、翻訳されているアプリ内のウェブパネル上の位置を識別するキー名を見て、アプリケーションUI内で翻訳されるべきテキスト文字列を一義的に識別することができる。
図11A及び
図11Bは、キーのパワーの例を示す。すなわち、一意のキーが翻訳者に各テキスト文字列のコンテキストを示す。
図11Aに示される例において、web.button.new_rule 1144は、翻訳されるべきテキストがどこに位置するかに関する情報を与え、翻訳者が正しい文字列を固定するのをサポートする。行71のテキスト文字列は、この例において、英語1122、及びドイツ語への翻訳1126でリストアップされる。
図11Bに示される例では、行479がレビューのために選択されたとき、admin.fields.title.edit 1154が、翻訳されるべきテキストの位置情報を与え、正しい文字列を固定することを容易にする。テキスト文字列は、ソース言語の英語1132及びターゲット言語のドイツ語1136の双方でリストアップされる。別の実現例において、人間の翻訳者は、コンピュータ支援翻訳ソフトウェアスイートとして、例えばTrados(登録商標)など、異なる市販のツールを利用してもよい。
【0069】
共同ウォークスルー376の間の翻訳者280及びQAテスタ304による議論の後、翻訳者は識別されたエラーを修正し、翻訳会社は更新された「修正」ファイルセットを送り返す。
図12Aは、翻訳されたローカライゼーションキット修正1222の既存の言語パック1212に対する比較をセットアップするUIを示す。ローカライゼーションキットファイルは持続されており、ファイルが持続されているディレクトリが指定される。比較は、ファイルの存在、キーの存在、値の比較、及び予期された値のパラメータの存在を考慮する。
図12Bは、フランス語翻訳についての修正比較レポートを示し、menu.actio.site-prefs_search.nameの一例示的なキーが修正されたアクセント記号を有する(1252)。
【0070】
LVTは、すべての修正が完了した後、元の言語パックを最終的な言語パックと比較するツールを含む。
図12Cは、新たにビルドされた言語パック1215を元の言語パック1225と比較するレポートUIを示し、
図12Dは、元の中国語言語パック1224の新しい中国語言語パック1214に対する比較から生じる一例示的なレポートを示す。
図12Dは、中国語の元のLPと最終的なLPとの間の差1254を示す。1つの文字列がマッチしていない。1つのケースにおいて、これは、最終的なLPがコンテキスト内テストの後に翻訳者が作成した修正を吸収したため、又はビルドエラーのためであり得る。ツールを実行するQAテスタは、LP間のこの差が所望の言語的修正として予期されているのかどうか、又はそれがビルド不備であり得るのかどうかに関して決定を行う。パラメータの比較は、パック内のパラメータが同じである場合に、「差が見つからなかった」メッセージ1264を与える。
【0071】
一実現例において、開示される技術は、テストセッションを実行するアプリケーションサーバでローカルに翻訳者が完了するいかなる編集も捕捉することに使用可能な、翻訳者のためのライブ編集モードを含むことができる。テストセッションが終了されたとき、すべての捕捉された変更がエクスポートされ、次いで、memoQ又は別のコンピュータ支援翻訳ソフトウェアスイートにインポートされることができる。
【0072】
デバッグツール128は、テキストの翻訳を保持する言語パックのデバッギングをサポートするコンテキスト内検証(verification-in-context)ツールを含み、テキストは、ウェブアプリパネルからソース言語タグ内に抽出され、翻訳は、ソース言語から複数のターゲット言語に進み、翻訳されたターゲット言語のタグが、これらが抽出されたウェブアプリパネルに論理的又は物理的に戻されマージされる。コンテキスト内検証ツールは、ウェブアプリパネルを監査して、ウェブアプリパネル上で、ウェブアプリパネル内にレンダリングするテキストを識別することと、各々の識別されたテキストが、翻訳のために抽出可能であったソース言語タグ内に含まれたかどうかを決定することと、各ソース言語タグの処理が、翻訳の後にウェブアプリパネルに論理的又は物理的に戻されマージされたターゲット言語タグを作り出したかどうかを決定することと、翻訳の後にウェブアプリパネルに戻されマージされた識別されたテキストのインスタンスと、翻訳の前にそれぞれのソース言語タグ内に存在した補足的なソースタグ情報とをリンクするアクセスを提供することとにより、選択されたターゲット言語への翻訳を検証するように構成可能である。
【0073】
図13は、日本語への翻訳のための、デバッグモードの一実現例を示す。コンテキスト内検証ツールが、選択されたターゲット言語でウェブアプリパネルの表示をさせ、各ウェブアプリパネルは、見られたとき、ウェブアプリパネル上のいずれの識別されたテキストが抽出されなかったか(1334)、いずれの抽出されたテキストが翻訳されなかったか(1324、1354)、及びいずれの抽出されたテキストが翻訳の後にウェブアプリパネルに戻されマージされたか(1344)を視覚的に示すようにエンコードされる。
図14Aは、
図13に示されるデバッグモードパネルの別のビューを示し、これは、翻訳の後にウェブアプリパネルに戻されマージされた抽出されたテキスト(1344)のための補足的なソースタグ情報1456を表示する。デバッグモードのいくつかの実現例において、ユーザは、ウェブアプリパネル上の関心のあるテキスト文字列1442の上でホバーする(hover)ことができ、補足的なソースタグ情報が表示され、すなわち、ソース言語タグが属するバンドルabtest 1464、ソース言語タグに割り当てられたキー名abtestpreferences.field.retrievestats 1465、及びソース言語における翻訳可能テキスト「Retrieve Statistics from Production」1466である。デバッグモードにおいて、翻訳者は、翻訳者がそのCATツール内で文字列のキー名を見ることにより意図された文字列を操作していることを確認することができる。さらに別のユースケースにおいて、デバッグモードは、抽出されたテキスト文字列のマークアップを含むことができ、それにより、まだ抽出されていないテキストがより明らかになる。いくつかの実現例において、デバッグモードは、テキストの文字列の上でホバーする必要なくキー名を示すことができる。
【0074】
図14Bは、一実現例における、QAテスタ及び複数の人間の翻訳者によるウォークスルーの間に使用可能なヘルプ画面を示す。「複数参加を許容する(allow multiple participation)」ラベル1424が抽出されたが、翻訳されたものとして表示しておらず、翻訳されたテキスト1434が、翻訳者に情報を与えるための役立つテキストとして含まれる。ポップアップテキスト1434はウェブページに属し、テキストラベル1424を参照するヘルプテキストである。このポップアップは、タイトルとしてラベルの名前を、次いでヘルプテキストを有する。アプリケーションの一部として、このヘルプテキストポップアップはデバッグモードによりさらに扱われ、ゆえに、抽出及び翻訳されたテキストが視覚的に識別される。補足的なソースタグ情報1454は、翻訳が存在する言語1464、この言語パックについては3つの言語を示す。
【0075】
ワークフロー
図15は、ロケール固有コンポーネントを追加すること及びテキストを翻訳することにより、ウェブアプリケーションにおいて要素を正確に翻訳し、国際化されたソフトウェアを特定の地域又は言語に適合させる環境の一実現例のフローチャート1500である。フローチャート1500は、例えば、情報を受信し又は取り出し、情報を処理し、結果を記憶し、結果を送信するように構成された1つ以上のプロセッサにより、データベースシステムで少なくとも部分的に実現できる。他の実現例が、
図15に例示されるものとは異なる順序の動作、及び/又は異なる、より少ない、又はさらなる動作を実行してよい。複数の動作が、いくつかの実現例において組み合わせられてよい。簡便さのため、このフローチャートは方法を参照して説明される。
【0076】
動作1510において、暫定ローカライゼーションキット内のキーを人間のローカライゼーションエキスパートに提示する。
【0077】
動作1515において、暫定ローカライゼーションキットに対してタグ名規定強制ツールを実行して、抽出されたキーを解析し、キー名文字列及び翻訳可能テキストの位置を特定し、動作1520において、キー命名ルールを適用する。
【0078】
動作1525において、有効なキーワードのリストからの少なくとも1つのキーワードの存在を必要とし、キーの意味ある及び一貫した命名を保証する。
【0079】
動作1530において、キー一意性、すなわち、マッチする値か異なるキーかのいずれかを必要とする。
【0080】
動作1535において、人間のローカライゼーションエキスパートによる完成のためにバグレポートスタブを作成し、バグレポートスタブ内に、キー命名ルールを解析されたキー名文字列に適用することにより生成されたキー例外からのコンテキストを含め、動作1540において、例外をトリガしたキー名に関して、完成バグレポート内に含めるために、人間のローカライゼーションエキスパートからのさらなるコメントを受け入れる。
【0081】
動作1545において、完成バグレポート内に含めるために人間のローカライゼーションエキスパートからのコメントを受け入れる。
【0082】
動作1550において、開発者による処理のために受信されたキー名及び編集された翻訳可能テキストを使用してサニタイゼーション訂正ファイルを生成する。
【0083】
上記で説明された動作は、異なる数又は配置のステップを使用して説明された方法を実行するように、より多くのステップに細分割され、あるいはより少ないステップに組み合わせられてよい。
【0084】
マルチテナント統合
図16は、国際化及びローカライゼーションにより、大規模ウェブアプリケーションを複数の言語に正確かつ効率的に翻訳する
図1の環境100を実現するのに適した一例示的なマルチテナントシステム1600のブロック図を提示する。一般に、
図16の例示されるマルチテナントシステム1600は、別法として「マルチテナントデータベース」と本明細書において呼ばれる、複数のテナント間で共有される共通データベース1632からのデータ1622に基づく、仮想アプリケーション1616及び1618を動的にサポートするサーバ1604を含む。GUIクライアントを含む、仮想アプリケーション1616及び1618により生成されたデータ及びサービスは、所望に応じ、ネットワーク1645を介して任意数のクライアント装置1648又は1658に提供される。
【0085】
本明細書において使用されるとき、「テナント」又は「組織」は、マルチテナントデータベース1632内のデータの共通サブセットに対するアクセスを共有する1以上のユーザの、グループを参照する。これに関し、各テナントは、それぞれのテナントに関連づけられ、割り当てられ、あるいはその他の方法で属する1以上のユーザを含む。別の言い方をすれば、マルチテナントシステム1600内の各それぞれのユーザは、マルチテナントシステム1600によりサポートされた複数のテナントのうち特定のテナントに関連づけられ、割り当てられ、あるいはその他の方法で属する。テナントは、ユーザ、ユーザ部門、作業又は法的組織、及び/又はマルチテナントシステム1600内に特定のユーザセットのためのデータを維持する任意の他のエンティティを表し得る。複数のテナントがサーバ1604及びデータベース1632に対するアクセスを共有し得るが、サーバ1604から各テナントに対して提供される特定のデータ及びサービスは、他のテナントに対して提供されるものからセキュアに隔離できる。ゆえに、マルチテナントアーキテクチャは、他のテナントに属しあるいはその他の方法で関連づけられたデータ1622のいずれかを必ずしも共有することなく、異なるユーザセットが機能性及びハードウェアリソースを共有することを可能にする。
【0086】
マルチテナントデータベース1632は、任意数のテナントに関連づけられたデータ1622を記憶及び管理することができる任意の種類のリポジトリ又は他のデータストレージシステムである。データベース1632は、任意タイプの従来的なデータベースサーバハードウェアを使用して実現されてよい。様々な実現例において、データベース1632は、サーバ1604との間で処理ハードウェアを共有する。他の実現例において、データベース1632は、本明細書に説明される様々な機能を実行するように、サーバ1604と通信する別個の物理及び/又は仮想データベースサーバハードウェアを使用して実現される。マルチテナントデータベース1632は、マルチテナントデータベース1632がアプリケーションプラットフォーム1617により生成されたオンデマンド仮想アプリケーション1616又は1618に対して実行時にデータを提供する(あるいは、提供するように利用可能である)点で、本明細書において別法としてオンデマンドデータベースとして参照されてよく、テナント1のメタデータ1612とテナント2のメタデータ1614とはセキュアに隔離される。
【0087】
実際、データ1622は、アプリケーションプラットフォーム1622をサポートするように任意の方式で編成され、フォーマットされてよい。様々な実現例において、従来的なデータ関係が、索引化、一意性、エンティティ間の関係、及び/又は所望される従来的なデータベース編成の他の態様を確立する任意数のピボットテーブル1613を使用して確立される。
【0088】
サーバ1604は、仮想アプリケーションを生成するための動的なアプリケーションプラットフォーム1617を集合的に提供する1つ以上の実際及び/又は仮想のコンピューティングシステムを使用して実現される。例えば、サーバ1604は、互いに関連して、典型的には従来的なネットワーク通信、クラスタ管理、ロードバランシング、及び必要に応じた他の特徴と関連して動作する実際及び/又は仮想のサーバのクラスタを使用して実現されてよい。サーバ1604は、プロセッサ1636、メモリ1638、入力/出力機構1634などの任意の種類の従来的な処理ハードウェアと共に動作する。入力/出力1634は、ネットワーク(例えば、ネットワーク1645、又は任意の他のローカルエリア、ワイドエリア、若しくは他のネットワークに対する)、大容量記憶装置、ディスプレイ装置、データ入力装置などに対するインターフェースを一般に表す。ユーザインターフェース入力装置1634には、キーボード;マウス、トラックボール、タッチパッド、又はグラフィックスタブレットなどのポインティング装置;スキャナ;ディスプレイに組み込まれたタッチスクリーン;音声認識システム及びマイクロフォンなどのオーディオ入力装置;及び他タイプの入力装置を含むことができる。一般に、用語「入力装置」の使用は、情報をコンピュータシステム1617に入力するための可能なタイプの装置及び方法を含むことが意図される。
【0089】
ユーザインターフェース出力装置には、ディスプレイサブシステム、プリンタ、ファックスマシン、又はオーディオ出力装置などの非視覚的装置を含むことができる。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネル装置、投影装置、又は可視イメージを作成する何らかの他の機構を含むことができる。ディスプレイサブシステムは、オーディオ出力装置などの非視覚的表示をさらに提供することができる。一般に、用語「出力装置」の使用は、プロセッサ1636からユーザに又は別のマシン若しくはコンピュータシステムに情報を出力するためのすべての可能なタイプの装置及び方法を含むことが意図される。
【0090】
プロセッサ1636は、任意数の「クラウドベース」又は他の仮想システムを含む、任意数の分散又は統合システムにわたり広がる1つ以上のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、処理コア、及び/又は他のコンピューティングリソースなどの、任意の適切な処理システムを使用して実現されてよい。メモリ1638は、任意の種類のランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、フラッシュメモリ、磁気又は光大容量記憶装置などを含む、プロセッサ1636上での実行のためのプログラミング命令を記憶することができる非一時的な短期若しくは長期記憶装置又は他のコンピュータ読取可能媒体を表す。コンピュータ実行可能プログラミング命令は、サーバ1604及び/又はプロセッサ1636により読み出され、実行されたときに、サーバ1604及び/又はプロセッサ1636に、アプリケーションプラットフォーム1617及び/又は仮想アプリケーション1616及び1618作成し、生成し、あるいはその他の方法で容易にすることを実行させ、本明細書に説明される1つ以上のさらなるタスク、動作、機能、及び/又はプロセスを実行させる。メモリ1638は、こうしたコンピュータ読取可能媒体の1つの適切な実現例を表し、別法として又は追加的に、サーバ1604は、例えば、ポータブルハードドライブ、USBフラッシュドライブ、光ディスクなどのポータブル又はモバイルコンポーネント又はアプリケーションプラットフォームとして実現される外部のコンピュータ読取可能媒体を受容し、該媒体と協働できる点に留意すべきである。
【0091】
アプリケーションプラットフォーム1617は、データ及び/又はサービスをクライアント装置1648及び1658に提供する仮想アプリケーション1616及び1618を生成する任意の種類のソフトウェアアプリケーション又は他のデータ処理エンジンである。典型的な一実現例において、アプリケーションプラットフォーム1617は、任意の種類の従来的又は専有のオペレーティングシステム1628を使用して処理ハードウェアの処理リソース、通信インターフェース、及び他の特徴に対するアクセスを得る。仮想アプリケーション1616及び1618は、典型的に、クライアント装置1648及び1658から受信した入力に応答して実行時に生成される。
【0092】
図16を引き続き参照し、サーバ1604により提供されるデータ及びサービスは、ネットワーク1645上の任意の種類のパーソナルコンピュータ、モバイル電話、タブレット、又は他のネットワーク対応クライアント装置1648若しくは1658を使用して取り出されてよい。一例示的な実現例において、クライアント装置1648又は1658は、モニタ、画面、又はマルチテナントデータベース1632から取り出されたデータ及び/又は情報をグラフィカルに提示することができる別の従来的な電子ディスプレイなどの、ディスプレイ装置を含む。
【0093】
いくつかの実現に例において、ネットワーク1645は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、WiMAX、Wi-Fi、電話ネットワーク、無線ネットワーク、ポイントツーポイントのネットワーク、スターネットワーク、トークンリングネットワーク、ハブネットワーク、メッシュネットワーク、Bluetoothなどのピアツーピア接続、近距離通信(NFC)、Z‐Wave、ZigBee、又はインターネットを含むデータネットワークの他の適切な構成のうち、任意の1つ又は任意の組み合わせであり得る。
【0094】
前述の説明は、実際専ら例示的であり、対象事項の実現例又はこうした実現例の適用及び使用を限定するようには意図されない。さらに、技術分野、背景技術、又は詳細な説明において提示されたいかなる明示的又は暗黙的な理論によっても限定される意図はない。本明細書において使用されるとき、ワード「例示的な」は、「例、インスタンス、又は例示の役割を果たすこと」を意味する。本明細書において例示的として説明されるいかなる実現例も、必ずしも他の実現例を上回り好適又は有利として解釈されるべきでなく、本明細書に説明される例示的な実現例は、いかなる方法においても対象の範囲又は適用可能性を限定するようには意図されない。
【0095】
開示される技術は、データベースシステム、マルチテナント環境、又は関係データベース実現例、例えば、Oracle(登録商標)TM互換データベース実装、IBM(登録商標) DB2(登録商標)エンタープライズサーバTM互換関係データベース実装、MySQL(登録商標)TM若しくはPostgreSQLTM互換関係データベース実装、若しくはMicrosoft(登録商標)SQLサーバTM互換関係データベース実装など、又はNoSQL非関係データベース実現例、例えば、VampireTM互換非関係データベース実装、Apache CassandraTM互換非関係データベース実装、BigTableTM互換非関係データベース実装、若しくはHBaseTM若しくはDynamoDB(登録商標)TM互換非関係データベース実装などを含む、任意のコンピュータ実現システムの文脈で実現できる。
【0096】
さらに、開示される技術は、互いに協働し、通信する2つ以上の別個の及び区別可能なコンピュータ実現システムを使用して実現できる。開示される技術は、プロセス、方法、装置、システム、デバイス、コンピュータ読取可能命令若しくはコンピュータプログラムコードを記憶したコンピュータ読取可能記憶媒体などのコンピュータ読取可能媒体として、又はコンピュータ読取可能プログラムコードを具現化させたコンピュータ使用可能媒体を含むコンピュータプログラムプロダクトとしてを含む、多数の方法で実現できる。
【0097】
特定の実現例
いくつかの特定の実現例及び特徴が下記の議論で説明される。
【0098】
人間のローカライゼーションエキスパートによるサニタイゼーション及び例外生成のために、暫定ローカライゼーションキットにおいて、ウェブアプリケーションのコードベースから抽出された、翻訳のためのテキストのタグを提示するように構成可能なサニタイゼーション及び例外生成ツールセットを実現する開示の方法の一実現例が、暫定ローカライゼーションキットに対してタグ名規定強制ツールを実行して、タグを解析してキー名文字列及び翻訳可能テキストを抽出し、次いで、抽出されたキー名文字列を、有効なキーワードのリストからの少なくとも1つのキーワードの存在を必要とし、かつキー一意性を必要とするキー命名ルールを使用して立証することを含む。方法は、人間のローカライゼーションエキスパートによる完成のために少なくとも1つのバグレポートスタブを作成することであって、バグレポートスタブ内に、キー名文字列を立証するためにキー命名ルールを使用して生成されたタグ例外からのコンテキストを含み、かつ例外をトリガしたキー名に関して、バグレポートスタブに追加するために人間のローカライゼーションエキスパートからさらなるコメントを受け入れることをさらに含む。方法は、人間のローカライゼーションエキスパートからの翻訳可能テキストに対する編集を受け入れ、開発者がウェブアプリケーションのコードベースにマージするように、受信されたキー名と編集された翻訳可能テキストとを使用してサニタイゼーション訂正ファイルを生成することをさらに含む。
【0099】
開示の技術のこの方法及び他の実現例は、下記の特徴及び/又は開示のさらなる方法と関連して説明される特徴のうち1つ以上を含むことができる。簡潔さのために、本出願において開示される特徴の組み合わせは個々に列挙されず、特徴の各基本セットで繰り返されない。
【0100】
開示の方法について、キー一意性は、特定のキー名を有するすべてのタグがマッチする翻訳可能テキストを共有するとき満たされ、有効なキーワードは、自然言語における品詞(part of speech)に一貫してマッチする。1つのケースにおいて、有効なキーワードは、別の自然言語に翻訳されたときに特定の文法を必要とするユーザインターフェースの要素に一貫してマッチする。有効なキーワードは、翻訳可能テキストが抽出されたところにマッチするGUI要素コンテキストを提供する。GUI要素コンテキストのキー名は、翻訳の各ターゲット言語について、翻訳可能テキストが翻訳されるべきターゲット自然言語における文法形式を指定するスタイルガイドを呼び出す。キー名は、モジュール名と、翻訳可能テキストが抽出されたGUI要素とのコンテキストをさらに含む。コンテキストは、特に数千のパネルを有する大規模ウェブアプリケーションにおいて、GUIにおけるスティング(sting)の位置を特定するのに役立つ。
【0101】
開示の方法のいくつかの実現例は、開発者によるマージの後にコードベースから抽出された、暫定ローカライゼーションキットとマージ後のサニタイズされたローカライゼーションキットとを使用して、キットバージョンを比較するように構成可能なマージ後サニタイゼーションチェックツールを実現することをさらに含み、マージ後サニタイゼーションチェックツールは、選択された暫定ローカライゼーションキットをサニタイズされたローカライゼーションキットと比較する変更確認ツールを実行し、暫定ローカライゼーションキット及びサニタイズされたローカライゼーションキット内のファイルの総数をカウントし、比較し、レポートし;暫定ローカライゼーションキット及びマージ後のサニタイズされたローカライゼーションキット内の対応するファイル間でキーコンテンツの差を比較し、レポートし;暫定ローカライゼーションキット及びサニタイズされたローカライゼーションキット内の対応するファイル間で値のパラメータの差を比較し、レポートし;マージ後のサニタイズされたローカライゼーションキットの承認の後、最終的なローカライゼーションキットを生成して翻訳者に送信する。
【0102】
開示の方法のいくつかの実現例は、暫定ローカライゼーションキット及びマージ後のサニタイズされたローカライゼーションキットの各々において、別個のフォルダとして:コードベースからの抽出のフルセットの、フルフォルダ;コードベースからの前の抽出の後に変わったタグの抽出の、変更フォルダ;及び前の抽出が行われたときにコードベースに存在しなかったタグの抽出の、新規フォルダ;を含む。いくつかのケースにおいて、マージ後サニタイゼーションチェックツールは、訂正についてカウントすること及び比較することからの例外を反復的にレポートし、次いで、更新されたサニタイズされたローカライゼーションキットに対してカウントすること及び比較することを繰り返すようにさらに構成可能である。
【0103】
ウェブアプリケーションのコードベースの翻訳において使用されるファイルの訂正を検証する1つの開示の方法が、ウェブアプリケーションのコードベースから抽出された、少なくともキー名とソース言語における翻訳可能テキスト文字列とを有するタグを含む最終的なローカライゼーションキットを人間の翻訳者に転送し;人間の翻訳者から、追加され又は置換された翻訳されたテキスト文字列を有する抽出されたタグを含む翻訳されたキットを受信し、翻訳されたキットを人間のローカライゼーションエキスパートに提示する;ように構成可能な翻訳検証ツールセットを含む。1つのケースにおいて、抽出されたタグは、翻訳で置換されたテキスト文字列を各々有する。方法は、翻訳されたキットを最終的なローカライゼーションキットと比較する変更確認ツールを実行し、最終的なローカライゼーションキットと共に翻訳されたキット内のファイルの総数をカウントし、比較し、レポートし;最終的なローカライゼーションキットと共に翻訳されたキット内の対応するファイル間のキーコンテンツの差を比較し、レポートし;かつ最終的なローカライゼーションキットと共に翻訳されたキット内の対応するファイル間の値のパラメータの差を比較し、レポートすることをさらに含む。方法は、人間のローカライゼーションエキスパートからの翻訳可能テキストに対する編集を受け入れることと;最終的な翻訳されたキットを持続ストレージにコミットすることとをさらに含む。
【0104】
方法のいくつかの開示の実現例は、開発者によるマージの後にコードベースから抽出された、暫定ローカライゼーションキットとマージ後のサニタイズされたローカライゼーションキットとを使用して、キットバージョンを比較するように構成可能なマージ後サニタイゼーションチェックツールを実現することをさらに含み、マージ後サニタイゼーションチェックツールは、選択された暫定ローカライゼーションキットをサニタイズされたローカライゼーションキットと比較する変更確認ツールを実行する。方法は、暫定ローカライゼーションキット及びサニタイズされたローカライゼーションキット内のファイルの総数をカウントし、比較し、レポートし;暫定ローカライゼーションキット及びマージ後のサニタイズされたローカライゼーションキット内の対応するファイル間でキーコンテンツの差を比較し、レポートし;暫定ローカライゼーションキット及びサニタイズされたローカライゼーションキット内の対応するファイル間で値のパラメータの差を比較し、レポートし;マージ後のサニタイズされたローカライゼーションキットの承認の後、最終的なローカライゼーションキットを生成して翻訳者に送信すること;をさらに含む。
【0105】
テキストの翻訳を保持する言語パックのデバッギングをサポートする開示の方法の一実現例において、テキストはウェブアプリパネルからソース言語タグに抽出され、翻訳はソース言語から複数のターゲット言語に進み、翻訳ターゲット言語タグが、これらが抽出されたウェブアプリパネルに論理的又は物理的に戻されマージされ、コンテキスト内検証ツールは、ウェブアプリパネルを監査して、選択されたターゲット言語への翻訳を、ウェブアプリパネル上で、ウェブアプリパネル内にレンダリングするテキストを識別することと、各々の識別されたテキストが、翻訳のために抽出可能であったソース言語タグに含まれたかどうかを決定することと、各ソース言語タグの処理が、翻訳の後にウェブアプリパネルに論理的又は物理的に戻されマージされたターゲット言語タグを作り出したかどうかを決定することと、翻訳の後にウェブアプリパネルに戻されマージされた識別されたテキストのインスタンスと、翻訳の前にそれぞれのソース言語タグに存在した補足的なソースタグ情報とをリンクするアクセスを提供することと、により検証するように構成可能なコンテキスト内検証ツールを実現するプロセッサ上で実行するコードを含む。開示の方法は、選択されたターゲット言語でウェブアプリパネルの表示をさせることであって、各ウェブアプリパネルは、見られたとき、ウェブアプリパネル上のいずれの識別されたテキストが抽出されなかったか、いずれの抽出されたテキストが翻訳されなかったか、及びいずれの抽出されたテキストが翻訳の後にウェブアプリパネルに戻されマージされたかを視覚的に示すようにエンコードされることと;ウェブアプリパネル上の特定の識別されたテキストの補足的なソースタグ情報の表示をさせることであって、補足的なソースタグ情報は、ソース言語タグが属するバンドル、ソース言語タグに割り当てられたキー名、及び、ソース言語における翻訳可能テキストを少なくとも含むこととをさらに含む。いくつかの実現例において、表示は、翻訳が存在する言語を含む。
【0106】
いくつかの開示の実現例において、方法は、ウェブアプリパネル上に補足的なソースタグ情報の表示をさせた後、ユーザから翻訳テキスト訂正を受信することと;選択されたターゲット言語において、ウェブアプリパネルにおける使用のために翻訳テキスト訂正を持続することとをさらに含む。方法は、翻訳テキスト訂正を受け入れる訂正入力エリアの表示をさせることをさらに含むことができる。開示の方法について、翻訳テキスト訂正を持続することは、コンピュータ支援翻訳ツールによりインポート可能なフォーマットで翻訳テキスト訂正を保存することを含む。翻訳テキスト訂正を持続することは、ウェブアプリパネルにより使用される翻訳ターゲット言語タグ内の識別されたテキストを更新することと、更新された翻訳ターゲット言語タグを持続することとをさらに含むことができる。方法のいくつかの実現例は、ウェブアプリパネルを変更することなくウェブアプリパネルにオーバーレイするフローティングウィンドウに補足的なソースタグ情報の表示をさせることをさらに含む。開示の方法は、補足的なソースタグ情報のために確保されたエリアに補足的なソースタグ情報の表示をさせることをさらに含む。方法のいくつかの開示の実現例について、各ウェブアプリパネルは、識別されたテキストの部分の翻訳の後、識別されたテキスト内に現れるソース言語における自然言語文字列を、ターゲット言語における文字列と共に視覚的に示すようにさらにエンコードされる。方法は、選択された言語について、ウェブアプリパネルに対する変更にわたり反復し、人間の視覚的検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字がウェブアプリパネルを破壊しないことを検証することをさらに含むことができる。いくつかのケースにおいて、方法は、選択された言語について、ウェブアプリパネルに対する変更にわたり反復し、機械検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字がウェブアプリパネルを破壊しないことを検証することをさらに含む。
【0107】
一実現例において、開示のコンテキスト内検証ツールは、選択された言語について、ウェブアプリパネルに対する変更にわたり反復し、人間の視覚的検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字がウェブアプリパネルを破壊しないことを検証するように構成可能な回帰ツールセットを実現する。いくつかのケースにおいて、回帰ツールセットは、選択された言語について、ウェブアプリパネルに対する変更にわたり反復し、機械検査のためのウェブアプリケーションコンテキストレンダリングを生成して、翻訳されたテキスト文字列内の翻訳された文字がウェブアプリパネルを破壊しないことを検証するように構成可能である。
【0108】
さらに別の実現例が、非一時的コンピュータ読取可能媒体を含んでよく、該媒体にロードされたプログラム命令を含み、プログラム命令はコンピュータハードウェアと組み合わせられ実行されたときに、テキストの翻訳を保持する言語パックのデバッギングを実現し、テキストはウェブアプリパネルからソース言語タグに抽出され、翻訳はソース言語から複数のターゲット言語に進み、翻訳ターゲット言語タグが、これらが抽出されたウェブアプリパネルに論理的又は物理的に戻されマージされる。
【0109】
さらに別の実現例が、コンピュータプログラム命令を含む有形の非一時的コンピュータ読取可能媒体を含んでよく、上記命令はコンピュータハードウェアと組み合わせられ、実行されたときに、前に説明された方法のいずれかをコンピュータに実現させる。
【0110】
開示された技術は、上記で説明された好適な実施例及び例に対する参照により開示されたが、これら例は、限定的意味でなく例示で意図されることが理解されるべきである。当業者が変更及び組み合わせに容易に気付き、こうした変更及び組み合わせは本イノベーションの主旨及び下記の特許請求の範囲内にあることが企図される。
【外国語明細書】