Ray Enterprise Translation
DrupalをRay Enterprise(旧Lingotek)のクラウドベース翻訳管理システム(TMS)と統合するエンタープライズグレードの翻訳管理モジュールです。
lingotek
インストール
composer require 'drupal/lingotek:^11.0'
composer require 'drupal/lingotek:^4.1'
概要
Ray Enterprise Translationは、Drupalサイトに包括的な翻訳管理機能を提供し、Lingotekのクラウドベース翻訳管理システムとのシームレスな統合を実現します。このモジュールは、コンテンツEntity(Node、Taxonomy Term、Mediaなど)、設定Entity(Views、Block、Menuなど)、およびユーザーインターフェース文字列の翻訳をサポートしています。
このモジュールは、カスタマイズ可能なプロファイルを通じて柔軟な翻訳ワークフローを提供します。プロファイルは自動(ハンズオフ翻訳)、手動(ユーザー制御)、または無効モードに設定できます。各プロファイルには、言語固有のオーバーライドと、コンテンツのライフサイクルやビジネスコンテキストを追跡するためのIntelligence Metadataエンリッチメントを設定できます。
主な機能には、一括翻訳操作、Webhookによるリアルタイムステータス監視、ジョブベースの翻訳グループ化、DrupalのContent Moderationシステムとの深い統合が含まれます。このモジュールは、すべての翻訳アクティビティを管理するためのビジュアルダッシュボードを提供し、関連Entity検出、Paragraphs/Media翻訳、Layout Builder統合などの高度な機能をサポートしています。
Features
- 自動または手動ワークフローでコンテンツEntityをLingotek TMSにアップロードしてプロフェッショナル翻訳を依頼
- 完了した翻訳をダウンロードし、翻訳されたコンテンツバージョンを自動作成
- カスタマイズ可能な自動化設定(自動アップロード、自動リクエスト、自動ダウンロード)で翻訳プロファイルを設定
- Views、Block、Menu、カスタム設定タイプを含む設定Entityを翻訳
- Theme、Module、インストールプロファイルからDrupalインターフェース文字列(UIテキスト)を翻訳
- 複数Entityにわたる大量翻訳操作のための一括管理インターフェース
- TMSからのWebhook通知によるリアルタイム翻訳ステータス追跡
- 関連する翻訳を整理・追跡するためのジョブベース翻訳グループ化
- 翻訳にビジネスコンテキストを追加するためのIntelligence Metadataエンリッチメント(著者、キャンペーン、ビジネスユニットなど)
- 言語カバレッジとステータスを一目で確認できるビジュアル翻訳ダッシュボード
- ターゲット言語ごとのきめ細かい制御のための言語固有プロファイルオーバーライド
- 最終化された翻訳の誤った上書きを防止するターゲットロック
- Content ModerationおよびWorkbench Moderationワークフローとの統合
- CLIベースの翻訳操作のためのDrushコマンド
- 埋め込みコンテンツ(Paragraphs、Media、Blockリファレンス)を翻訳するための関連Entity検出
- Layout Builder、Metatag、Paragraphs、Cohesionを含む高度なフィールドタイプのサポート
Use Cases
自動化コンテンツ翻訳ワークフロー
コンテンツ量の多いサイトでは、Automaticプロファイルを設定して手動介入なしで翻訳を処理します。コンテンツが作成または更新されると、自動的にLingotekにアップロードし、すべての有効な言語の翻訳をリクエストし、完了した翻訳をダウンロードします。これは、複数言語間で最小限の編集監督で迅速に翻訳が必要なニュースサイト、eコマースカタログ、またはその他のサイトに最適です。
編集レビュー翻訳ワークフロー
編集管理が必要なサイトでは、Manualプロファイルを使用します。コンテンツエディターは、コンテンツが翻訳の準備ができたときに手動でアップロードをトリガーし、送信前に翻訳リクエストをレビューし、検証後にのみ翻訳をダウンロードします。これは、公開前に正確性を確認する必要がある法務、医療、または規制されたコンテンツに適しています。
コンテンツタイプ別の選択的翻訳
異なるコンテンツタイプに異なるプロファイルを設定します。製品ページは迅速なターンアラウンドのためにAutomaticプロファイルを使用し、法務ページは慎重なレビューのためにManualプロファイルを使用できます。ブログ投稿は自動アップロードだが手動ダウンロードで翻訳の編集レビューを行うカスタムプロファイルを使用できます。
ジョブベース翻訳管理
プロジェクト管理のためにジョブIDを使用して関連する翻訳をグループ化します。すべての関連コンテンツ(ランディングページ、製品説明、マーケティング資料)を含む製品ローンチ用のジョブを作成し、ジョブ全体の進捗を追跡し、ローンチ前にすべてのピースが完了していることを確認します。
翻訳分析のためのIntelligence Metadata
Intelligence Metadataを有効にして、ビジネスユニット、キャンペーン、または地域別に翻訳コストとパフォーマンスを追跡します。プロファイルごとにメタデータを設定して翻訳コストを正しく割り当て、どのコンテンツタイプまたはキャンペーンに最も多くの翻訳投資が必要かを分析します。
マルチリージョンコンテンツ戦略
言語固有のプロファイルオーバーライドを使用して、ターゲット市場に基づいて翻訳を異なるワークフローにルーティングします。ヨーロッパ言語は1つの翻訳ベンダー/ワークフローを使用し、アジア言語は別の専門ベンダーを使用できます。異なるVaultで地域固有のTranslation Memoryを保存できます。
多言語サイトの設定翻訳
コンテンツだけでなくサイト設定も翻訳:Menu名、Blockタイトル、Views表示、フィールドラベル。設定で設定翻訳を有効にし、設定翻訳管理ページで管理して、ユーザーエクスペリエンス全体がローカライズされるようにします。
カスタムModuleのインターフェース翻訳
potxモジュールを使用したインターフェース翻訳機能を使用して、カスタムModuleとThemeからUI文字列を抽出して翻訳します。これにより、カスタム開発がコントリビュートおよびコアの翻訳と一緒に完全にローカライズされます。
Paragraphs多用サイト
Paragraphsモジュールを広範囲に使用するサイトでは、統合設定でParagraphs一括管理を有効にします。関連Entity検出は翻訳が必要なParagraphsを自動的に識別し、親コンテンツの一部として、または別々に管理できます。
最終化された翻訳のターゲットロック
新しいターゲットロック機能を使用して、最終レビュー後に翻訳をロックします。これにより、ソースコンテンツが更新されたときの誤った上書きを防ぎ、明示的にロック解除されるまで、最終化された翻訳が新しい機械翻訳で置き換えられないように保護します。
Tips
- ダッシュボードを定期的に使用して言語間の翻訳カバレッジを監視 - 全体的な翻訳ステータスのクイックな視覚的フィードバックを提供します
- 個々のコンテンツのプロファイル割り当てを常に変更するのではなく、異なるコンテンツワークフロー用のカスタムプロファイルを作成します
- API問題のトラブルシューティング時にインタラクションログを一時的に有効化 - 詳細なリクエスト/レスポンスログを提供しますが、かなりのログ量を生成します
- キャンペーンやプロジェクトの関連コンテンツをグループ化するためにジョブIDを使用 - 追跡とレポートがはるかに簡単になります
- 異なるターゲット言語に異なる品質要件やベンダー設定がある場合は、言語固有のワークフローオーバーライドを設定します
- 「全ダウンロードを分割」設定により、一度に1言語ずつ処理することで大規模な翻訳バッチの信頼性を向上できます
- 高トラフィックサイトでは自動ダウンロードにQueue Workerを有効にして、翻訳ダウンロードがページ応答時間に影響を与えないようにします
- 翻訳がレビューされ、更新前に最終化される必要がある規制または法務コンテンツにはターゲットロック機能を使用します
- 単一のテストドキュメントをアップロードしてステータスが自動的に更新されることを確認することで、Webhook接続をテストします
- 必須でなくてもIntelligence Metadataの使用を検討 - データは時間の経過とともに翻訳コスト分析とベンダー管理に役立ちます
Technical Details
Admin Pages 11
/admin/lingotek
すべての言語にわたる翻訳ステータスの概要を提供するメインダッシュボード。各有効言語のコンテンツ翻訳カバレッジを色分けされたステータスインジケーターで視覚的に表示します。ターゲット言語の追加/削除と翻訳進捗の一覧表示をサポートしています。
/admin/lingotek/settings
アカウント設定、コンテンツタイプ、設定、プロファイル、Intelligence Metadata、環境設定、統合、ユーティリティを含む、Lingotek統合のすべての側面を設定するための複数のタブを持つ包括的な設定ページです。
/admin/lingotek/manage
コンテンツEntity翻訳の一括管理インターフェース。複数のEntityにわたる翻訳を同時に管理するためのフィルタリング、選択、バッチ操作を提供します。
/admin/lingotek/config/manage
設定EntityおよびオブジェクトのTranslation用一括管理インターフェース。コンテンツ管理と同様ですが、Views、Block、フィールド設定などの設定項目用です。
/admin/lingotek/manage/interface-translation
Module、Theme、インストールプロファイルからのDrupal UI文字列の翻訳を管理するインターフェース。翻訳可能な文字列を抽出するためにpotxモジュールが必要です。
/admin/lingotek/jobs
翻訳ジョブの表示と管理。ジョブは関連する翻訳を追跡・整理目的でグループ化します。
/admin/lingotek/job/{job_id}/content
特定の翻訳ジョブ内のコンテンツEntityを表示・管理。ジョブが事前選択されたコンテンツ管理のフィルタービューを表示します。
/admin/lingotek/job/{job_id}/config
特定の翻訳ジョブ内の設定項目を表示・管理。
/admin/lingotek/settings/profile/add
特定の自動化設定、TMSデフォルト、Intelligence Metadataオーバーライド、言語ごとのカスタマイズを持つ新しいカスタム翻訳プロファイルを作成します。
/admin/lingotek/setup/account
Lingotekアカウントに接続するための初期セットアップページ。既存のアカウント(アクセストークンを入力)または新規アカウント(無料またはエンタープライズサインアップ)のオプションを提供します。
/admin/lingotek/supported-locales
Lingotekがサポートするすべてのロケールコードと、Drupal言語コードへのマッピングをリストするリファレンスページです。
権限 3
Hooks 8
hook_lingotek_content_entity_translation_presave
Lingotekからダウンロード後、保存前にコンテンツEntity翻訳データを変更することをモジュールに許可
hook_lingotek_content_entity_document_upload
Lingotek TMSにアップロードする前にドキュメントデータを変更することをモジュールに許可
hook_lingotek_content_entity_get_profile
コンテンツEntityの翻訳プロファイルをオーバーライドすることをモジュールに許可
hook_lingotek_config_entity_translation_presave
保存前に設定Entity翻訳データを変更することをモジュールに許可
hook_lingotek_config_entity_document_upload
アップロード前に設定Entityドキュメントを変更することをモジュールに許可
hook_lingotek_config_object_translation_presave
保存前にシンプルな設定オブジェクト翻訳データを変更することをモジュールに許可
hook_lingotek_config_object_document_upload
アップロード前にシンプルな設定オブジェクトデータを変更することをモジュールに許可
hook_form_lingotek_management_form_alter
Lingotek管理フォームをカスタマイズするための標準Drupalフォルターhook
Drush Commands 5
drush lingotek:upload
翻訳用にコンテンツEntityをLingotek TMSにアップロード
drush lingotek:check-upload
LingotekでのコンテンツEntityのアップロードステータスを確認
drush lingotek:request-translations
LingotekからコンテンツEntityの翻訳をリクエスト
drush lingotek:check-translations-statuses
コンテンツEntityの翻訳ステータスを確認
drush lingotek:download-translations
コンテンツEntityの完了した翻訳をダウンロード
Troubleshooting 10
翻訳プロファイルでauto_downloadが有効になっていることを確認します。Lingotek通知コールバックURLが正しく設定されていることを確認します(設定 > ユーティリティで表示)。ダウンロードにQueue Workerを使用している場合は、Cronが定期的に実行されていることを確認します。DrupalログでAPIエラーを確認します。
設定 > コンテンツでコンテンツタイプのLingotek翻訳が有効になっていることを確認します。割り当てられたプロファイルが「Disabled」ではないことを確認します。Entityにソース言語が設定されており、バンドルでContent Translationが有効になっていることを確認します。APIログを確認します(設定 > ログでインタラクションログを有効化)。
設定 > アカウントに移動し、「デフォルトを編集」または「アクセストークンを更新」を使用して、Lingotekアカウントから新しい有効なアクセストークンを入力します。
設定 > コンテンツ > [コンテンツタイプ] > 編集で特定のフィールドがLingotek翻訳に有効になっていることを確認します。一部のフィールドタイプには特定のフィールドプロセッサーが必要です - フィールドタイプがサポートされていることを確認します。
コールバックURLがインターネットからアクセス可能であることを確認します(ファイアウォール設定を確認)。設定 > ユーティリティに表示されるURLはLingotekサーバーから到達可能でなければなりません。「通知コールバックURLを更新」を使用して登録を更新します。
プロファイルは使用中です。管理インターフェースでこのプロファイルを使用しているコンテンツを確認します(プロファイルでフィルター)。また、プロファイルがデフォルトとして設定されている可能性のあるコンテンツタイプ設定も確認します。削除前にすべての使用を変更します。
設定 > 設定で特定の設定タイプの設定翻訳を有効にします。有効にされた設定マッパーのみが管理インターフェースに表示されます。
potxモジュールをインストールして有効にします:composer require drupal/potx && drush en potx。インターフェース翻訳機能は翻訳可能な文字列を抽出するためにpotxに依存しています。
設定 > 統合で「Paragraphsの一括管理を有効化」を有効にします。ParagraphsタイプレベルでContent Translationが有効になっていることを確認します。ParagraphリファレンスフィールドがLingotek翻訳用にマークされていることを確認します。
環境を切り替える前(dev→staging→production)、設定 > ユーティリティの「すべての関連付けを解除」ユーティリティを使用して、すべてのローカルLingotek関連付けを削除します。これにより、新しい環境がTMSに重複ドキュメントを作成することを防ぎます。
Security Notes 6
- 「administer lingotek」権限は、アカウント切断やメタデータ削除を含むすべてのLingotek機能への完全なアクセスを提供します - 信頼できる管理者にのみ付与してください
- APIアクセストークンは機密認証情報として扱う必要があります - Lingotek TMSアカウントへの完全なアクセスを提供します
- Webhookエンドポイント(/lingotek/notify)は公開アクセス可能ですが、リクエストがLingotekからのものであることを検証します - サーバーのファイアウォールがLingotek IP範囲からの受信リクエストを許可していることを確認してください
- 翻訳プロファイルは翻訳を自動公開するように設定できます - コンテンツワークフローへの影響と、翻訳に公開前の編集レビューが必要かどうかを検討してください
- 連絡先情報付きでIntelligence Metadataを使用する場合、このデータはLingotek TMSに送信され保存されることに注意してください
- すべての翻訳の関連付けを解除することは元に戻せない重要な操作です - データベースバックアップを取った上で慎重に使用してください