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