翻訳コネクタ・ソース・コードの例の理解
サンプルの翻訳コネクタのソース・コードには、REST APIとコネクタ・ジョブの作成および永続性を処理するジョブ・マネージャが含まれています。
サンプル翻訳コネクタには、Oracle Content Managementコネクタ・インタフェースを使用して実装されたREST APIのセットが含まれています。 これはJAX-RS仕様に従って実装されます。
ジョブ・マネージャは、persistenceApiを使用して次のリソースを格納します:
- コネクタのジョブおよび言語サービス・プロバイダで作成されたプロジェクトのMetadata
- Oracle Content Managementからの翻訳zipファイルの内容
- 各ファイルおよび言語サービス・プロバイダの対応するドキュメントについてのMetadata
- 翻訳と元のファイルの組合せ
- コネクタの翻訳済zipファイルの作成
サンプルに含まれているpersistenceApiでは、単にファイル・システムを使用してこれらのリソースを管理します。 完全翻訳コネクタの実装では、永続性レイヤーがフェイルオーバーおよびアップグレード中も引き続き機能することを確認し、格納されているリソースに安全なアクセスを提供する必要があります。
また、ジョブ・マネージャは、ポーリングまたはコールバックを介して情報を問い合せることで、言語サービス・プロバイダの翻訳ジョブのステータスに関するコネクタ・ジョブ・メタデータ・ファイルに情報を保持します。
コード構造:
コネクタ:
- SampleConnectorRouter.js
- リクエストを認証
- リクエストURLからパラメータを抽出
- リクエストURLを対応するSampleConnectorファンクションにマップします:
GET: /api/connector/v1/server => getServer() – metadata about the connector POST: /api/connector/v1/job => createJob() GET: /api/connector/v1/job/:id => getJob() POST: /api/connector/v1/job/:id/translate => translateJob() – accepts a zipfile GET: /api/connector/v1/job/:id/translation => getTranslation – get translated zip DELETE: /api/connector/v1/job/:id => deleteJob()
- SampleConnector.js
- リクエスト・パラメータを検証
- 適切なコネクタ・コードをコール
- レスポンスをフォーマット
- SampleBasicAuth.js
connector/job-manager:
- sampleJobManager.js
- Zipファイルを展開し、次に各ファイルについて:
- 翻訳可能なフィールドのみを含めるようにファイルをフィルタ処理
- 翻訳可能なフィールドをLSPに送信
- 翻訳が行われるのを待機します(ポーリングまたはコールバックで)。
- 翻訳可能なフィールドを元のファイルと再結合
- すべての翻訳のZipファイルを作成
- また、起動時に実行中のジョブも再起動してフェイルオーバーをサポート
- Zipファイルを展開し、次に各ファイルについて:
- sampleFileImporter.js
- フィルタ済ドキュメントを、ソース言語を指定してLSPにインポート
- sampleFileTranslator.js
- ドキュメントをターゲット言語に翻訳するようLSPに要求
- sampleFileDownloader.js
- ドキュメントの翻訳のダウンロード
connector/apis:
- persistenceApi.js
- ファイルシステムを使用した基本的な実装:
- Zipファイルを解凍し、ソースをメンテナンスしてください
- 翻訳済ファイルを受け入れて、目的のzip構造を作成
- Zipを稼働して、翻訳済ファイルを返します
- ファイルシステムを使用した基本的な実装:
- filterApi.js
- ファイル・タイプに基づいて、ソース・ファイルから翻訳可能な文字列を抽出
- 翻訳された文字列をソース・ファイルで再結合
- connectorApi.js
- LSPへのリクエストを構築
- httpApi.js
- LSPへの実際のGET/POSTリクエストを作成
- mockLSPServer.js
- mockBearerAuth.js
- モックLSPサーバー
- 次のヘッダーがあるとします:
- BearerToken - 任意の
Bearer ####値を指定できます - WorkflowId -
machine-workflow-idのみをサポート
- BearerToken - 任意の
翻訳ジョブ元のZipファイル形式
コネクタは、翻訳zipファイルから翻訳するファイルを抽出し、それらをフィルタリングしてLSPに送信する役割があります。 これを行うには、コネクタがzipファイルの形式を理解している必要があります。
Oracle Content Managementには2つのタイプの翻訳ジョブがあるため、zipファイルには2つのファイル構造があります:
- アセット翻訳
- Zipファイル形式
- " job.json " - ソース&ターゲット言語の詳細が含まれています。
- "root"
- <asset files to be translated>
- Zipファイル形式
- サイト翻訳
- Zipファイル形式
- "site"
- " job.json " - ソース言語およびターゲット言語の詳細が含まれています。
- "root"
- <site files to be translated>
- "assets"
- " job.json " - ソース言語およびターゲット言語の詳細が含まれています。
- "root"
- <asset files in the site to be translated>
- "site"
- Zipファイル形式
翻訳ジョブ翻訳済Zipファイル・フォーマット
翻訳が成功したとき、コネクタは元のファイルとの翻訳を再結合し、元の形式に基づいてzipファイルを次の形式で作成する必要があります。
- アセット翻訳
- Zipファイル形式:
- "job.json"
- "de-DE"
- <asset files>
- "fr-FR"
- <asset files>
- "it-IT"
- <asset files>
- root (オプションで元のファイルを含めることができます。 また、ファイルだけでなく、ディレクトリも含める必要があります。)
- <asset files>
- Zipファイル形式:
- サイト翻訳
- Zipファイル形式:
- "site"
- "job.json"
- "de-DE"
- <site files>
- "fr-FR"
- <site files>
- "it-IT"
- <site files>
- root (オプションで元のファイルを含めることができます。 また、ファイルだけでなく、ディレクトリも含める必要があります。)
- <site files>
- "assets"
- "job.json"
- "de-DE"
- <asset files>
- "fr-FR"
- <asset files>
- "it-IT"
- <asset files>
- root (オプションで元のファイルを含めることができます。 また、ファイルだけでなく、ディレクトリも含める必要があります。)
- <asset files>
- "site"
- Zipファイル形式: