ポンコツエンジニアのごじゃっぺ開発日記。

いろいろポンコツだけど、気にするな。エンジニアの日々の開発などの記録を残していきます。 自動で収入を得られるサービスやシステムを作ることが目標!!

【GAS】Googleの翻訳機能を使って無料の翻訳APIを作成してみよう。

この記事は GAS道場 Advent Calendar 2019 の19日目の記事です。 Google Apps Script(GAS)をこれから使おうという方向けのアドベントカレンダーになります。

今回は、GAS上からLanguageAppというGoogle翻訳が扱えるクラスを利用して、言語の翻訳をしてみたいと思います。

developers.google.com

使ってみる

では早速使ってみたいと思います。

日本語→英語

まずは、日本語から英語に翻訳してみましょう。

function myFunction() {
  var word = 'りんご';
  Logger.log(transrateFromJaToEn(word))
}

function transrateFromJaToEn(word) {
  return LanguageApp.translate(word, 'ja', 'en');
}

これを実行すると・・・

[19-12-18 21:35:44:063 JST] Apple

のように、りんごをappleに翻訳することができました。

英語→日本語

次は逆の英語から日本語への翻訳です。

function myFunction() {
  word = 'pen'
  Logger.log(transrateFromEnToJa(word))
}

function transrateFromEnToJa(word) {
  return LanguageApp.translate(word, 'en', 'ja');
}

これの実行結果は・・・

[19-12-18 21:35:44:068 JST] ペン

のように、日本語に翻訳されました。

おまけ

おまけですが、日本語と英語が混合しているものはどうなるでしょう?

function myFunction() {
  word = 'penりんごりんごpen'
  Logger.log(transrateFromJaToEn(word))
  Logger.log(transrateFromEnToJa(word))
}

function transrateFromJaToEn(word) {
  return LanguageApp.translate(word, 'ja', 'en');
}

function transrateFromEnToJa(word) {
  return LanguageApp.translate(word, 'en', 'ja');
}

これを実行してみると・・・

[19-12-18 21:35:44:072 JST] pen apple apple pen
[19-12-18 21:35:44:113 JST] ペンりんごりんごペン

pen apple apple penって感じで。ピコ太郎って2019年も終わるのにだいぶ古いですかね。

翻訳APIの作成

では、次に翻訳をするAPIを作成してみましょう。

function transrateFromJaToEn(word) {
  return LanguageApp.translate(word, 'ja', 'en');
}

function transrateFromEnToJa(word) {
  return LanguageApp.translate(word, 'en', 'ja');
}

function doGet(e) {
  var word = e.parameter.word;
  
  var result = transrateFromJaToEn(word);
  if (word == result) {
    result = transrateFromEnToJa(word);
  }
  
  return createaResponse(result);
}

function createaResponse(word) {
  var data = {result:word};
  var payload = JSON.stringify(data)
  var output = ContentService.createTextOutput();
  output.setMimeType(ContentService.MimeType.JSON);
  output.setContent(payload);
  
  return output;
}

このようなスクリプトを書いて、ウェブアプリケーションとして公開します。APIの公開については、以下で書いておりますので御覧ください。

www.pnkts.net

そして、これに対してリクエストを投げてみましょう。

URL?word=りんご

まずは、クエリパラメータに?word=りんごをつけてリクエストをしてみましょう。

f:id:ponkotsu0605:20191218214604p:plain

しっかり林檎と返ってきました。しかもりんごではなく漢字!!

URL?word=apple

次に、?word=appleを投げてみましょう。

f:id:ponkotsu0605:20191218214356p:plain

ちゃんと翻訳されて返ってきました。しかもリクエストしてきた言語によって日本語→英語英語→日本語を自動で切り替えていますね!

さいごに

今回は、翻訳機能を使ってAPIを作成するところまでできました。 これで、別の言語で実装するときにGoogleの翻訳APIを叩かずにもGASで実装したAPIを叩くことで無料で翻訳することができますね!