ADVERTISEMENT

【Googleドキュメント】Apps Scriptで自動翻訳機能の追加!Translate APIの活用

【Googleドキュメント】Apps Scriptで自動翻訳機能の追加!Translate APIの活用
🛡️ 超解決

Googleドキュメントで作成した文書を多言語に翻訳したいと思ったことはありませんか。手動でコピーして翻訳サイトに貼り付けるのは手間がかかります。Google Apps ScriptとCloud Translation APIを組み合わせれば、文書内のテキストを自動翻訳する機能を追加できます。この記事では、APIの有効化からスクリプトの作成、カスタムメニューの設置までをステップごとに解説します。

【要点】Apps ScriptでGoogleドキュメントに自動翻訳機能を追加する3つのステップ

  • Cloud Translation APIの有効化: Google Cloud ConsoleでAPIを有効にし、認証情報を取得します。
  • スクリプトエディタでコードを記述: 選択範囲を翻訳する関数を作成し、カスタムメニューに登録します。
  • 翻訳関数の実行: メニューから翻訳を実行し、結果を元のテキストと置き換えるか、隣のセルに出力します。

ADVERTISEMENT

Apps ScriptとTranslate APIの連携の仕組み

Cloud Translation APIは、Google Cloudが提供する機械翻訳サービスです。テキストを送信すると、指定した言語に翻訳された結果が返ってきます。Apps ScriptからこのAPIを呼び出すことで、Googleドキュメント内のテキストを自動翻訳できます。APIの利用にはGoogle Cloudプロジェクトでの有効化と認証情報が必要です。無料枠として1か月あたり500,000文字まで無料で利用できます。

自動翻訳機能を追加する具体的な手順

事前準備:APIの有効化と認証

  1. Google Cloud Consoleにアクセスする
    ブラウザでhttps://console.cloud.google.comにアクセスし、Googleアカウントでログインします。既存のプロジェクトを選択するか、新しいプロジェクトを作成します。
  2. Cloud Translation APIを有効にする
    ナビゲーションメニューから「APIとサービス」→「ライブラリ」を選択し、「Cloud Translation API」を検索して有効にします。
  3. 認証情報を設定する
    「認証情報」画面で「認証情報を作成」→「サービスアカウント」を選び、名前を入力して作成します。作成後、サービスアカウントのキーをJSON形式でダウンロードします。このJSONファイルはスクリプトで使用するため、安全に保管してください。

スクリプトエディタでコードを記述

  1. Apps Scriptプロジェクトを作成する
    Googleドキュメントを開き、「拡張機能」→「Apps Script」を選択します。スクリプトエディタが開いたら、デフォルトのコード.gsファイルに関数を定義します。
  2. 翻訳関数を実装する
    以下のコードをコード.gsに貼り付けてください。
    function translateText(text, targetLanguage) {
      var apiKey = 'YOUR_API_KEY'; // Cloud Consoleから取得したAPIキーに置き換えてください
      var url = 'https://translation.googleapis.com/language/translate/v2?key=' + apiKey;
      var payload = {
        'q': text,
        'target': targetLanguage,
        'source': '' // 自動検出
      };
      var options = {
        'method': 'post',
        'contentType': 'application/json',
        'payload': JSON.stringify(payload)
      };
      var response = UrlFetchApp.fetch(url, options);
      var json = JSON.parse(response.getContentText());
      return json.data.translations[0].translatedText;
    }
  3. カスタムメニューを作成する
    ドキュメントを開いたときに翻訳メニューが表示されるよう、以下のonOpen関数と翻訳実行関数を追加します。
    function onOpen() {
      var ui = DocumentApp.getUi();
      ui.createMenu('翻訳')
        .addItem('選択範囲を翻訳', 'translateSelection')
        .addToUi();
    }
    
    function translateSelection() {
      var selection = DocumentApp.getActiveDocument().getSelection();
      if (!selection) {
        DocumentApp.getUi().alert('テキストを選択してください。');
        return;
      }
      var text = '';
      var elements = selection.getRangeElements();
      for (var i = 0; i < elements.length; i++) {
        var element = elements[i].getElement();
        if (element.editAsText) {
          text += element.asText().getText();
        }
      }
      var targetLanguage = 'en'; // 翻訳先言語コードを指定
      var translated = translateText(text, targetLanguage);
      // 翻訳結果を新しい段落として挿入
      var body = DocumentApp.getActiveDocument().getBody();
      body.appendParagraph('原文: ' + text);
      body.appendParagraph('翻訳: ' + translated);
    }

スクリプトを実行して確認する

  1. スクリプトを保存する
    スクリプトエディタで「保存」アイコンをクリックし、プロジェクト名を入力します。
  2. 初回認証を行う
    初めて実行するときは、権限の承認が必要です。「実行」ボタンをクリックすると承認画面が表示されるので、操作を進めてください。スクリプトがドキュメントの読み取りや翻訳APIの呼び出しに必要な権限を要求します。
  3. onOpen関数を一度実行する
    メニューをドキュメントに追加するために、関数ドロップダウンから「onOpen」を選んで実行します。これでドキュメントに「翻訳」メニューが表示されます。
  4. 翻訳をテストする
    ドキュメント内の翻訳したいテキストを選択し、「翻訳」→「選択範囲を翻訳」をクリックします。翻訳結果が文書の末尾に追加されます。

操作時の注意点とよくあるエラー

APIキーが正しく設定されていない場合

コード内のAPIキーを実際のキーに置き換えないと、認証エラーが発生します。キーはCloud Consoleの「認証情報」画面から確認できます。APIキーを紛失した場合は無効化して再作成してください。

翻訳先言語コードの指定

translateSelection関数内のtargetLanguage変数に、ISO 639-1の言語コード(例:日本語なら'ja'、英語なら'en'、中国語なら'zh')を指定します。コードを間違えると翻訳が行われないか、意図しない言語に翻訳されます。

文字数制限と割り当て

Cloud Translation APIには1リクエストあたりの最大文字数制限(約30,000文字)と、1か月あたりの無料枠(500,000文字)があります。大量のテキストを一度に翻訳する場合は、分割してリクエストする必要があります。月末になると無料枠を超える場合があるため、使用量を監視しましょう。

翻訳結果の品質

機械翻訳は完璧ではありません。専門用語や固有名詞の翻訳が不適切なことがあります。翻訳結果をそのまま使用するのではなく、必要に応じて手動で修正してください。

ADVERTISEMENT

Translate APIと手動翻訳の比較

項目 Translate API + Apps Script 手動翻訳(コピペ)
速度 一瞬で翻訳完了 翻訳サイトにアクセスして結果を待つ
コスト 無料枠内なら無料、超えると従量課金 無料(ただし手間が時間)
精度 機械翻訳、ただし改善中 人間が確認、高精度
統合性 ドキュメント内で完結 アプリケーション間の行き来が必要
カスタマイズ スクリプトで柔軟に制御可能 人力に依存

まとめ

本記事では、Google Apps ScriptとCloud Translation APIを使ってGoogleドキュメントに自動翻訳機能を追加する方法を解説しました。APIの有効化、スクリプトの作成、カスタムメニューの設置の流れを理解できたはずです。この仕組みを応用すれば、特定の言語に限定せず、ユーザーが翻訳先を選択できるダイアログを追加することも可能です。まずはサンプルコードを動かして、翻訳の自動化を体感してみてください。


ADVERTISEMENT

📄
Googleドキュメントトラブル完全解決データベースこの記事以外にも、書式・共有・Apps Script・引用など様々な困りごとへの解決策をまとめています。逆引きに活用してください。
この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。