API

日本語・英語・韓国語・中国語の翻訳APIをGASで作ってみる

日本語から英語・韓国語・中国語を同時に翻訳できたらコミュニケーションが楽になるシーンがあったので、GAS(Google Apps Script)を利用して、日英韓中国語の4言語翻訳APIを作成してみました。

日英韓中国語 4言語翻訳APIの仕様

このAPIは、1つの言語を送信すると、他の3言語に自動翻訳してレスポンスしてくれるようにします。

また、韓国語・中国語のレスポンスにはカタカナのふりがなを付けるようにします。(読めないので、、、)

日英韓中国語 4言語翻訳APIの実装例

GASで作成したAPI全体のコードは以下の感じです。

function translateText(text, targetLanguage) {
  var apiKey = "YOUR_GOOGLE_TRANSLATE_API_KEY"; // あなたのGoogle翻訳APIキーをここに入力してください
  var sourceLanguage = "auto"; // 入力言語を自動検出する

  var response = UrlFetchApp.fetch(
    "https://translation.googleapis.com/language/translate/v2?key=" + apiKey +
    "&q=" + encodeURIComponent(text) +
    "&source=" + sourceLanguage +
    "&target=" + targetLanguage
  );

  var json = response.getContentText();
  var data = JSON.parse(json);
  var translatedText = data.data.translations[0].translatedText;

  return translatedText;
}

function addFurigana(text) {
  var response = UrlFetchApp.fetch(
    "https://labs.goo.ne.jp/api/hiragana?app_id=YOUR_GOO_API_KEY&sentence=" + encodeURIComponent(text)
  );

  var json = response.getContentText();
  var data = JSON.parse(json);
  var furiganaText = data.converted;

  return furiganaText;
}

function main(inputLanguage, inputText) {
  var languages = ["en", "ko", "zh"]; // 対象の翻訳言語
  var responses = {};

  for (var i = 0; i < languages.length; i++) {
    var targetLanguage = languages[i];

    if (targetLanguage === inputLanguage) {
      continue; // 入力言語は翻訳しない
    }

    var translatedText = translateText(inputText, targetLanguage);

    if (targetLanguage === "ko" || targetLanguage === "zh") {
      translatedText = addFurigana(translatedText);
    }

    responses[targetLanguage] = translatedText;
  }

  return JSON.stringify(responses);
}

 

次に、使用している関数の解説をしていきます。

translateText関数: 言語の翻訳

translateText関数: Google翻訳APIを呼び出してテキストを翻訳する関数です。

function translateText(text, targetLanguage) {
  var apiKey = "YOUR_GOOGLE_TRANSLATE_API_KEY"; // あなたのGoogle翻訳APIキーをここに入力してください
  var sourceLanguage = "auto"; // 入力言語を自動検出する

  var response = UrlFetchApp.fetch(
    "https://translation.googleapis.com/language/translate/v2?key=" + apiKey +
    "&q=" + encodeURIComponent(text) +
    "&source=" + sourceLanguage +
    "&target=" + targetLanguage
  );

  var json = response.getContentText();
  var data = JSON.parse(json);
  var translatedText = data.data.translations[0].translatedText;

  return translatedText;
}

 

addFurigana関数: カタカナのふりがなの追加

addFurigana関数: 渡されたテキストに対して、カタカナのふりがなを付ける関数です。

function addFurigana(text) {
  var response = UrlFetchApp.fetch(
    "https://labs.goo.ne.jp/api/hiragana?app_id=YOUR_GOO_API_KEY&sentence=" + encodeURIComponent(text)
  );

  var json = response.getContentText();
  var data = JSON.parse(json);
  var furiganaText = data.converted;

  return furiganaText;
}

 

APIのメイン関数

APIのメイン処理を行う関数です。

function main(inputLanguage, inputText) {
  var languages = ["en", "ko", "zh"];
  var responses = {};

  for (var i = 0; i < languages.length; i++) {
    var targetLanguage = languages[i];

    if (targetLanguage === inputLanguage) {
      continue;
    }

    var translatedText = translateText(inputText, targetLanguage);

    if (targetLanguage === "ko" || targetLanguage === "zh") {
      translatedText = addFurigana(translatedText);
    }

    responses[targetLanguage] = translatedText;
  }

  return JSON.stringify(responses);
}

 

まとめ

GAS(Google Apps Script)を利用して、日本語から英語・韓国語・中国語を同時に翻訳する4言語翻訳APIを作成してみました。

言語翻訳ツールを使ったコミュニケーションができることで、外国語の壁を薄くしたり、外国語をより身近にできたらいいなあと思いました。

▼HTML/CSS/JavaScriptの学習本を探してる方はこちらの記事をどうぞ

2023年版 Webコーディングにオススメの学習本【HTML/CSS/JavaScript】この記事では、初心者から中級者以上まで、Webコーディングの学習にオススメの学習本をご紹介します。この記事で紹介する本は、分かりやすい解説や実践的な例題、デザインや解説図など、学習をサポートするいろんな要素が含まれている本を選びました。ぜひ、自分に合った本を見つけて、ウェブ制作のスキルを磨いてみてください。...

 

ABOUT ME
りん
QA 1年 / Webデザイナー 2年 / SE 2年 / フリーランスSE 1年 / SE人事・開発PM 半年 / 沖縄から福岡に移住3年目 / 趣味や好きなことをブログにまとめてます