GoogleスプレッドシートにあるGOOGLETRANSLATE関数が使えない!!
正式には、日本語としてすっと読めないですよね。そこで、精度のいいDeepLが使えればいいんですが、APIは有料!!
と諦めていたら、DeepLぐらいに精度がいい翻訳サイトが日本にあるじゃないか!?あまりにも有名になっていないが ”みんなの自動翻訳@TexTra®”
このサイトでは、登録こそ必要だが、基本的にAPIも提供されているツールも無料!!
そこの機能でエクセルを翻訳してもいいが、Googleスプレッドシートで直接使えればいいじゃんってことで、作ってみた
ソースコード
https://github.com/assen0817/GAS_minhon
var url = 'https://mt-auto-minhon-mlt.ucri.jgn-x.jp'; // 基底URL (https://xxx.jpまでを入力)
var url_oauth = '/oauth2/token.php';
var key = ''; // API key
var secret = ''; // API secret
var name = ''; // ログインID
var api_name = 'mt'; // API名 (https://xxx.jp/api/mt/generalNT_ja_en/ の場合は、"mt")
var api_param = 'minnaPE_en_ja'; // API値 (https://xxx.jp/api/mt/generalNT_ja_en/ の場合は、"generalNT_ja_en")
// oauth2
var token_data = {
'grant_type': 'client_credentials',
'client_id': key, // API Key
'client_secret': secret, // API secret
'urlAccessToken': url + url_oauth // アクセストークン取得URI
};
var options = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify(token_data)
};
var oauth2 = JSON.parse(UrlFetchApp.fetch(url + url_oauth, options).getContentText())
var access_token = oauth2.access_token;
// 翻訳本体
function minhon(text) {
var response_data = {
'key': key, // API Key
'api_name': api_name,
'api_param': api_param,
'name': name, // ログインID
'type': 'json', // レスポンスタイプ
'text': text
};
var parameter = 'access_token=' + access_token
for (key in response_data){parameter += '&' + key + '=' + response_data[key]}
var options = {
'method' : 'get',
'contentType': 'application/json',
};
var response = UrlFetchApp.fetch(url + '/api/?' + parameter);
var json = response.getContentText();
var data = JSON.parse(json);
var result = data.resultset.result.text;
return(result);
}
準備
みんなの自動翻訳@TexTra®でAPIの準備をしていきます。
アカウントの作成またはログインしてもらって、上部のカスタマイズから好きな翻訳の種類を選んでもらって、リクエストURLとAPI key, API secretをメモっておきましょう。

次にGoogleスプレッドシートに行きます。
Googleスプレッドシートの上部の拡張機能>apps Script

開いたページで上記のソースコードをコピペ

コードの3行目から下にメモした、API keyとAPI secret、ログインに使用するID名を入れましょう。
api_nameとapi_paramには、メモしたリクエストURLの/api/のあとのものを順番に入れて、保存と実行を押して、アクセス権限の承認をすれば、好みの翻訳での関数が完成します。
使い方
下の画像の感じで、普通の関数として使えば、翻訳してくれます。一気に下までやるとサーバーに負荷がかかるので、10個ずつなどに分けて下までやることを推奨します。
エラーになったら、一度消してやり直せば翻訳できます。

最後に
エクセルとかワードとかに拡張機能はあるが、やっぱネットで使えるGoogleスプレッドシートで手軽に使いたかったので、作ってみましたが、こういうサービスはいいですね!みんなの自動翻訳@TexTra®に感謝です。
プログラムのほうは、.gsとみんなの自動翻訳@TexTra®のAPIを初めて使ってささっと作ったので、結構簡単な構造になってしまった。sleepタイムとか挟んだ方がよかったかな。。。
なにかあれば、コメント残してっていってください。
