Drupalの多言語対応で Translation Management Toolを使って翻訳コンテンツの作成をラクにする


Drupalで多言語対応をする場合、メインとなる言語でコンテンツを作成して、そのあと各言語ごとに翻訳したコンテンツを用意する必要があります。
しかし、別々でコンテンツを用意するのは手間がかかります。
今回紹介する「Translation Management Tool」モジュールを使うと、メインとなる言語をもとに、外部の翻訳サービスと連携して翻訳コンテンツを作成できます。
翻訳コンテンツの作成をラクにしたい場合は非常に役立つので、多言語対応のサイトを運用したい方、している方はぜひご覧ください。
Translation Management Toolとは?
「Translation Management Tool」は、Drupalと外部の翻訳サービスを連携して、Drupal内でラクに翻訳コンテンツの作成ができるようになるモジュールです。
外部の翻訳サービスというのは、たとえば「Google翻訳」「DeepL翻訳」「gengo」などの入力した文章を特定の言語に翻訳してくれるサービスのことです。
2022年10月現在、かなりの数の翻訳サービスに対応していて、「Translation Management Tool」のページに一覧があります(Translation Service Providerのセクションに名前のあるサービスが利用可能です)。
もちろん翻訳後に確認作業は必要ですが、イチから翻訳作業をしたり、翻訳サービスを開いてコピペして翻訳するよりは、かなりラクになります。
Translation Management Toolの設定方法
Translation Management Toolはさまざまな翻訳サービスと連携できますが、今回はGoogle翻訳を例にして説明します。
ちなみに、Google翻訳を使用する場合はGoogle API Keyの取得が必要なのと、API Keyの関係で1ヶ月に500,000 文字までは無料で利用できますが、1,000,000文字ごとに$20必要になります(2022年10月現在の情報です)。
利用するときは「Cloud Translation の料金」を確認の上、登録するように注意しましょう。
多言語対応をする
まず前提として、多言語対応ができるようにしておく必要があります。
多言語対応の方法は「Drupalで多言語機能を利用して、複数言語に対応したサイトを構築する方法」で詳しく紹介しているので、そちらを参考にして翻訳コンテンツを作成できるようにしてください。
Translation Management Toolモジュールのインストール
Translation Management Toolを使いたい場合は、本体のモジュールをインストールするのと、使いたい翻訳サービス用のTranslation Management Toolモジュールの2つをインストールします。
ちなみに、略としてモジュール名などに「tmgmt(Translation Management Tool)」が使われています。
tmgmtの本体と一緒に、利用する翻訳サービスのtmgmt用モジュールをインストールして使えるようになります。本体だけでは使用できないので注意しましょう。
まず「tmgmtの本体ページ」へ移動して「Releases」に書かれてあるcomposerコマンドを使ってモジュールをインストールします。
次に、今回使用したい翻訳サービスはGoogle翻訳なので「tmgmt_google」をインストールします。
Drupalのバージョンに注意
モジュールのインストール時には、現在使用しているDrupalのバージョンに適しているか確認が必要です。
サービス一覧の右側に対応バージョンが書いてあるので、使用しているバージョンに合っているか確認してからインストールしましょう。
管理画面から有効化する場合
管理画面からモジュールを有効化する場合は、メニューの[機能拡張]をクリックします。
「tmgmt」モジュールをインストールしていると、モジュール一覧ページに新しく「Translation Management」の項目が追加されています。
この中から最低限必要なモジュールは「Content Entity Source」と「Google Translator(tmgmt_googleをインストールすると追加される)」「Translation Management Core」の3つです。
それぞれのモジュールの役割は下記の通りなので、他に必要な機能がある場合は一緒に有効化しておきましょう(マシン名は後述するDrushで有効化したい場合に使用する名前です)。
モジュール | マシン名 | 内容 |
---|---|---|
Config Entity Source | tmgmt_config | [環境設定]→[構成の翻訳]でtmgmtを使えるようにする |
Content Entity Source | tmgmt_content | コンテンツでtmgmtを使えるようにする |
Drupal user | tmgmt_local | ローカルユーザーが翻訳サービスを使えるようになる |
Export / Import File | tmgmt_file | 翻訳データをエクスポート・インポートできるようにする |
Google Translator | tmgmt_google | Google翻訳をtmgmtで使う(tmgmt_googleをインストールすると表示される) |
Locales Source | tmgmt_locale | tmgmtの翻訳ソース |
Translation Language abilities | tmgmt_language_combination | ユーザーが言語の組み合わせを選択できるフィールドを追加する |
Translation Management Core | tmgmt | Translation Managementのコア機能 |
Translation Management Demo | tmgmt_demo | Translation Managementのデモ用モジュール |
チェックを入れてページ最下部の「インストール」をクリックすれば完了です。
Drushで有効化する場合
Drushを使っている場合は下記のコマンドで有効化できます。
#「Content Entity Source」モジュールの有効化
drush en tmgmt_content
#「Google Translator」モジュールの有効化
drush en tmgmt_google
#「Translation Management Core」モジュールの有効化
drush en tmgmt
Drushのインストール方法は過去に記事にしているので、気になる方はそちらもご覧ください。
必要情報を登録して連携する
メニューに[翻訳]が追加されているので、[翻訳]→[Providers]に移動して、Drupalと翻訳サービスの連携をします。
プロバイダー一覧に「Google翻訳」が追加されているので「編集」ボタンをクリックします。
ここで翻訳サービスの情報が編集できるのですが、Google翻訳の場合は「Google API Key」が必要になります。
少しスクロールしたところに「Google plugin settings」という項目があるので、そこにAPI Keyを入力して「Connect」で接続します。
Google API Keyの取得
Google API Keyを取得するには「Google Cloud console」というサイトにアクセスします。
このサイトでGoogle関連のAPIなどのサービス管理ができます。
初回アクセス時はサービスの利用規約への同意が必要なので、同意して先に進みます。
「新しいプロジェクト」をクリックして、プロジェクトを作成します。
プロジェクト名は分かりやすいように「Drupal Translation Management」などにしておきましょう。
入力したら「作成」をクリックします。
プロジェクトの作成ができたら、画面上部の検索ボックスに「Cloud Translation API」と入力して、検索候補に表示されるAPIをクリックします。
「有効にする」をクリックしてAPIを有効化しましょう。
有効化したら、サイドバーの[APIとサービス]→ [有効なAPIとサービス]で「Cloud Translation API」を選択します。
あとは[認証情報]タブの「認証情報を作成」をクリックして、「APIキーの作成」から作成します。
作成が完了すると、モーダルでAPIキーが表示されるので、これを先ほどのtmgmtの設定画面にコピペしましょう。
「Connect」をクリックして「Successfully connected!!」と表示されればAPIキーを使ってGoogle翻訳との接続完了です。
ただし、まだ保存はされていないので、ページ下の「保存」を押し忘れないように注意しましょう。
「保存」をクリックすれば完了です。
翻訳コンテンツを生成する
今回はメイン言語の日本語から英語への翻訳をするので、まずは日本語のコンテンツを用意します。
用意したら、コンテンツ一覧で[翻訳]メニューを選択して翻訳画面へ移動します。
多言語対応時に用意した言語一覧が表示されているので「English」にチェックを入れて「Request translation」をクリックします(「追加」をクリックしてしまうと、手動で翻訳する編集画面に移動してしまいます)。
下の画像のようなステータスメッセージが表示されれば翻訳完了です。
「reviewed」のリンクをクリックするか、もしくはメニューの[翻訳]→[Job Items]をクリックして、対象の翻訳コンテンツの「確認する」ボタンをクリックすれば翻訳内容が表示されます。
左が原文で、右がGoogle翻訳を使って翻訳された文章です。
修正したい場合は、ここで直接修正ができます。
内容に問題がなければ、ページ最下部の「Save as completed」でコンテンツを保存します。
これで翻訳したコンテンツは公開状態になります。
今回使用したGoogle日本語入力の場合は、機械的な翻訳なので待ち時間もなく一瞬ですが、モジュールによっては人の手で翻訳される場合もあります。
その場合は翻訳が完了するまで[翻訳]→[Jobs]で「処理中」と表示されます。
ローカライゼーションについても考える必要がある
これでコンテンツの翻訳はラクにできるようになりましたが、覚えておかないといけないことが「翻訳するだけが多言語対応ではない」ということです。
たとえば、翻訳する言語の国柄や地域性に合わせた言葉の言い回しにしたり、コンテンツを変更することを「ローカライゼーション(局在化・局地化)」と言います。
ローカライゼーションすることで「ただ直訳しただけのコンテンツ」ではなくなります。
実際に、日本語で表示されているけど文章がいかにも直訳で、あまり見かけない言葉の言い回しになっているサイトを見たことはないでしょうか?
あくまで、Translation Management Toolは翻訳作業をラクにしてくれるものと考えて、ローカライゼーションは別途考える必要があります。
ちなみに、Translation Management Toolで連携できる翻訳サービスの中には、時間とお金がかかる代わりに人が翻訳作業を代わりにしてくれるサービスもあります。
機械的な翻訳ではないので、この場合はある程度自然な翻訳になりそうですし、翻訳作業の外注化ができます。
まとめ
今回紹介した「Translation Management Tool」を使えば、翻訳サービスと連携してコンテンツの多言語対応が効率的になります。
新しいコンテンツを作成するたびに、翻訳用のコンテンツも一緒に用意しないといけないのは、多言語サイトを運営していくにあたって、ずっと付きまとう問題です。
モジュールをうまく活用することで、少しでも作業をラクにできれば、長期的に見てかなり大きな差になるのではないでしょうか。
弊社にはDrupalでの開発経験が10年以上を誇る開発者や寄与モジュールのコントリビューターなど、経験豊富な技術者が多数揃っています。
サイト制作をして終わりではなく、その後の運用を見据えた管理画面の構築や設定・保守管理が可能です。
Drupalの新規導入、既存システム保守管理などのご相談がありましたら、お気軽にお問い合わせください。

モチヤスタッフ
Drupalなど技術に関する投稿をモチヤのスタッフが行っています。