TMGMT DeepL Integration

Translation Management Tool (TMGMT) モジュールのプラグインとして、DeepL翻訳APIを統合し、コンテンツの自動翻訳を可能にするモジュールです。

tmgmt_deepl
3,300 sites
23
drupal.org

インストール

Drupal 11, 10 v2.2.14
composer require 'drupal/tmgmt_deepl:^2.2'

概要

TMGMT DeepL Integrationは、Drupalの翻訳管理システムであるTMGMTにDeepL翻訳サービスを統合するモジュールです。DeepLは高品質なニューラル機械翻訳サービスで、このモジュールを使用することでDrupalサイトのコンテンツを30以上の言語に自動翻訳できます。

DeepL API Free(月50万文字まで無料)とDeepL API Pro(従量課金制)の両方に対応しており、ビジネスニーズに応じて選択可能です。XMLおよびHTML形式のタグ処理にも対応し、翻訳時にマークアップ構造を保持できます。また、フォーマリティ設定により、翻訳結果を丁寧語・カジュアル語に調整することも可能です。

連続翻訳(Continuous Translation)機能をサポートし、cronを通じたバックグラウンド翻訳処理も可能です。サブモジュールのDeepL glossariesを有効にすると、用語集(グロッサリー)機能が利用でき、特定の用語の翻訳を一貫して制御できます。

Features

  • DeepL API Free と DeepL API Pro の両方をサポートし、用途に応じて選択可能
  • アラビア語、ブルガリア語、チェコ語、デンマーク語、ドイツ語、ギリシャ語、英語、スペイン語、エストニア語、フィンランド語、フランス語、ヘブライ語、ハンガリー語、インドネシア語、イタリア語、日本語、韓国語、リトアニア語、ラトビア語、ノルウェー語、オランダ語、ポーランド語、ポルトガル語、ルーマニア語、ロシア語、スロバキア語、スロベニア語、スウェーデン語、タイ語、トルコ語、ウクライナ語、ベトナム語、中国語など30以上の言語に対応
  • XMLおよびHTMLタグ処理機能により、翻訳時のマークアップ構造を保持
  • フォーマリティ設定(丁寧語/カジュアル語)でドイツ語、フランス語、イタリア語、スペイン語、オランダ語、ポーランド語、ポルトガル語、ロシア語の翻訳トーンを調整可能
  • 文分割設定で翻訳エンジンの文認識動作をカスタマイズ
  • フォーマット保持機能で元のテキストのフォーマット要素を維持
  • TMGMTの連続翻訳(Continuous Translation)機能に対応し、コンテンツ更新時の自動翻訳を実現
  • cronを使用したバックグラウンドでのキュー処理による大量翻訳に対応
  • API接続テスト機能とAPIキー検証で設定ミスを事前に検出
  • サブモジュール「DeepL glossaries」による用語集機能で特定用語の翻訳を統一

Use Cases

多言語企業サイトのコンテンツ翻訳

グローバル展開する企業サイトで、製品説明、ブログ記事、ニュースリリースなどのコンテンツを効率的に多言語化できます。TMGMTのワークフローを使用して、翻訳リクエスト→DeepLによる自動翻訳→人間による校正→公開というプロセスを確立できます。フォーマリティ設定を使用してブランドに適したトーン(フォーマル/カジュアル)を維持できます。

専門用語の一貫性を保った技術文書翻訳

グロッサリー機能を使用して、製品名、技術用語、社内専門用語などの翻訳を統一できます。例えば、「コンテンツ管理システム」を常に「CMS」と翻訳するよう設定することで、複数の翻訳者やDeepLが関わっても用語の一貫性を保てます。

ECサイトの商品情報多言語化

大量の商品説明やカテゴリ情報を効率的に翻訳できます。HTMLタグ処理機能を使用して、商品説明内のマークアップ構造(強調、リスト、リンク等)を保持しながら翻訳を実行できます。cronを使用したバックグラウンド処理により、数百〜数千の商品を順次翻訳できます。

ニュースサイトのリアルタイム多言語配信

連続翻訳(Continuous Translation)機能とcronを組み合わせることで、新規コンテンツが作成されると自動的に翻訳ジョブが作成され、バックグラウンドで翻訳が実行されます。速報性の求められるニュースコンテンツの多言語配信に適しています。

法的・公式文書のフォーマル翻訳

利用規約、プライバシーポリシー、契約書などの公式文書では、formality設定を「more」または「prefer_more」に設定することで、適切にフォーマルな表現で翻訳されます。対応言語(ドイツ語、フランス語、イタリア語、スペイン語等)で敬語・丁寧語が適切に使用されます。

Tips

  • フォーマリティ設定でエラーを防ぐには、「prefer_more」または「prefer_less」を使用してください。対応していない言語でも fallback としてデフォルト設定が適用されます。
  • 大量のコンテンツを翻訳する場合は、TMGMTのcron設定を活用してバックグラウンド処理で実行すると、ブラウザのタイムアウトを回避できます。
  • グロッサリーのエントリーは、より具体的な用語(フレーズ全体)を登録すると効果的です。1単語だけでなく、「コンテンツ管理システム」→「CMS」のようなフレーズ単位で登録することで意図した翻訳が得られやすくなります。
  • テスト環境では、test_urlとtest_url_usage設定を使用してモックサービスに接続でき、実際のAPIクレジットを消費せずにテストできます。
  • DeepLシミュレーター(https://www.deepl.com/docs-api/simulator/)を使用すると、API設定の効果を事前に確認できます。

Technical Details

Admin Pages 6
翻訳プロバイダー /admin/tmgmt/translators

TMGMTの翻訳プロバイダーを管理する画面。ここでDeepL翻訳プロバイダーを新規追加・編集できます。

DeepL glossaries /admin/tmgmt/deepl_glossaries

DeepLグロッサリー(用語集)の一覧表示と管理画面。グロッサリーの作成、編集、削除、DeepL APIとの同期が可能です。

Add DeepL glossary /admin/tmgmt/deepl_glossaries/add

新しいDeepLグロッサリーを作成するフォーム。

Edit DeepL glossary /admin/tmgmt/deepl_glossaries/manage/{deepl_ml_glossary}/edit

既存のDeepLグロッサリーを編集するフォーム。辞書の一覧も表示されます。

Add dictionary /admin/tmgmt/deepl_glossaries/{deepl_ml_glossary}/add

グロッサリーに新しい言語ペア辞書を追加するフォーム。ソーステキストとターゲットテキストのペアを複数登録できます。

Fetch DeepL glossaries /admin/tmgmt/deepl_glossaries/fetch

DeepL APIから既存のグロッサリーを取得してDrupalに同期する確認画面。

権限 6
Delete DeepL glossary entities

DeepLグロッサリーエンティティの削除権限

Add DeepL glossary entities

DeepLグロッサリーエンティティの新規作成権限

Edit DeepL glossary entities

DeepLグロッサリーエンティティの編集権限(名前、翻訳プロバイダーの変更を含む)

Edit DeepL glossary entries

DeepLグロッサリーのエントリー(用語ペア)のみを編集する権限。グロッサリー自体の設定は変更不可

Administer DeepL glossary entities

DeepLグロッサリーエンティティの完全な管理権限

Access DeepL glossary overview

DeepLグロッサリー一覧ページへのアクセス権限

Hooks 3
hook_tmgmt_deepl_checkout_settings_form_alter

翻訳ジョブのチェックアウト設定フォームを変更するためのフック。グロッサリー選択フィールドの追加などに使用されます。

hook_tmgmt_deepl_has_checkout_settings_alter

翻訳ジョブがチェックアウト設定を持つかどうかを変更するためのフック。TRUEを返すとチェックアウト設定フォームが表示されます。

hook_tmgmt_deepl_query_string_alter

DeepL APIへの翻訳リクエストを送信する前にクエリパラメータを変更するためのフック。カスタムパラメータの追加やグロッサリーIDの設定などに使用されます。

Troubleshooting 6
「The DeepL API authentication key is not correct」エラーが表示される

DeepL APIキーが正しいか確認してください。DeepL API FreeとDeepL API Proでは異なるAPIキーが必要です。https://www.deepl.com/pro#developer で正しいキーを取得し、適切なプラグイン(deepl_free または deepl_pro)を選択してください。

翻訳が実行されない、ジョブがSubmitted状態のまま

cronが正しく設定されているか確認してください。連続翻訳を使用している場合、翻訳処理はcronを通じてキューワーカーで実行されます。また、DeepL APIの月間使用量制限(Free版は50万文字)に達していないか確認してください。

HTMLタグが翻訳結果で崩れる

翻訳プロバイダー設定でTag handlingを「html」に設定してください。また、特定のタグを翻訳対象外にしたい場合はIgnore tagsに追加してください。

グロッサリーが翻訳に適用されない

グロッサリーのソース言語とターゲット言語が翻訳ジョブの言語ペアと一致しているか確認してください。また、グロッサリーがDeepL APIと正しく同期されているか、/admin/tmgmt/deepl_glossaries から「Fetch DeepL glossaries」を実行して確認してください。

DeepL API Freeで複数のグロッサリーが作成できない

DeepL API Freeアカウントでは1つのグロッサリーのみ許可されています。複数の言語ペアが必要な場合は、1つのグロッサリー内に複数の辞書(Dictionary)を追加してください。

429 Too Many Requestsエラーが発生する

モジュールには自動リトライロジック(指数バックオフ)が実装されていますが、大量の翻訳リクエストを短時間に送信するとAPIレート制限に達する場合があります。バッチサイズを調整するか、リクエスト間隔を空けてください。

Security Notes 4
  • DeepL APIキーは機密情報として扱ってください。設定エクスポート時やログに含まれないよう注意が必要です。
  • 翻訳プロバイダーの設定は「administer tmgmt」権限を持つユーザーのみがアクセスできるようにしてください。
  • グロッサリー機能を使用する場合、適切な権限設定を行い、不正なエントリーの追加・編集を防いでください。
  • このモジュールはセキュリティカバレッジ対象(covered)であり、Drupalセキュリティチームによるレビューを受けています。