GAS(Google Apps Script)で言語判別機能付き翻訳APIを作成

目的

翻訳APIを使いたいなぁ。でもお金かけたくないなぁ。という ケチな あなた。

GAS(Google Apps Script)の LanguageApp には翻訳機能が備わっていて無料で利用できます。

今回は LanguageApp を使って無料で使える翻訳APIを作成してみます。


機能

  • パラメータで渡した値を翻訳する。
  • 言語を自動で判別して、日本語以外なら日本語に翻訳する。
  • パラメータで渡した値が日本語なら英語に翻訳する。


全体のコード

function doGet(event) {
  let params = event.parameter;
  let text = params.text;
  let transText = LanguageApp.translate(text, '', 'ja');
  if (text == transText) {
    transText = LanguageApp.translate(text, '', 'en');
  }
  let response = ContentService.createTextOutput();
  response.setMimeType(ContentService.MimeType.JSON);
  return response.setContent(JSON.stringify({
    "code": 200,
    "text": transText
  }));
}


解説

API実行時のクエリパラメータを受け取ります。

  let params = event.parameter;
  let text = params.text;


LanguageApp.translate() で翻訳します。

第2引数には翻訳元の言語、第3引数には翻訳先の言語を指定して、第2引数が空だと言語を自動判別してくれます。

この例の場合、自動判別した言語を日本語に翻訳します。

  let transText = LanguageApp.translate(text, '', 'ja');


翻訳前後が同じ=翻訳元が日本語ということなので、その場合は英語に翻訳します。(このやり方は美しくない)

  if (text == transText) {
    transText = LanguageApp.translate(text, '', 'en');
  }


翻訳結果をJSON形式で返却します。

  let response = ContentService.createTextOutput();
  response.setMimeType(ContentService.MimeType.JSON);
  return response.setContent(JSON.stringify({
    "code": 200,
    "text": transText
  }));


実行

作成したスクリプトをウェブアプリとしてデプロイして、APIを実行します。

# リクエスト(日本語)
https://script.google.com/XXX/exec?text=こんにちは

# レスポンス
{"code":200,"text":"Hello"}
# リクエスト(英語)
https://script.google.com/XXX/exec?text=hello

# レスポンス
{"code":200,"text":"こんにちは"}
# リクエスト(フランス語)
https://script.google.com/XXX/exec?text=bonjour

# レスポンス
{"code":200,"text":"こんにちは"}


参考

https://qiita.com/satto_sann/items/be4177360a0bc3691fdf