みんなの自動翻訳
自動翻訳って楽で素敵ですよね。僕は今までDeepLを使っていました。
だけど、DeepLのAPIって有料な上に、ブラウザの有料プランと併用できないという苦しみがあるようでした。APIを使わせてくれないと、シェルとかvimとかから使いにくい。
そこで、みんなの自動翻訳というWebサービスがAPIとか使わせてくれるので使ってみました。ちなみに、このサービスはユーザー登録必須です。
https://mt-auto-minhon-mlt.ucri.jgn-x.jp/
具体的にはどうするか
minhonコマンドを実装してみます。
例えば、下記のように動いて欲しかった。
> echo みんなの自動翻訳をシェルから使ってみたよ。| minhon
I tried using Minna no Machine Translation from Shell.
いい感じじゃないですか?これなら割とどんなソフトにも組み込めるんじゃ?
もしvimならvisualモードで:を押して
:'<,'>!minhon
とすると
みんなの自動翻訳をvimで使ってみるよ。
↓
I'm going to use Minna's machine translation on vim.
って感じに翻訳してくれます。いい感じじゃないですか?
登録
単にユーザー登録するだけ。簡単。
そんで、APIの所にキーとかシークレットがあるので、コピペする。
コード
みんなの自動翻訳に書いてあるのをほぼ丸写ししたのです。
まぁ、適当です。pythonで書いていて、requests_oauthlibを使っています。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from requests import post
from requests_oauthlib import OAuth1
import json
import argparse
parser = argparse.ArgumentParser(description='Front end of minhon')
parser.add_argument('-j', '--japanese', action='store_true', help='To Japanese')
args = parser.parse_args()
text_list = []
while(True):
try:
res = input()
text_list.append(res)
except BaseException:
break
text = '\n'.join(text_list)
if args.japanese:
URL = 'https://mt-auto-minhon-mlt.ucri.jgn-x.jp/api/mt/generalNT_en_ja/'
else:
URL = 'https://mt-auto-minhon-mlt.ucri.jgn-x.jp/api/mt/generalNT_ja_en/'
NAME = 'ID'
KEY = 'キー'
SECRET = 'シークレット'
consumer = OAuth1(KEY , SECRET)
params = {
'key': KEY,
'name': NAME,
'type': 'json',
'text': text
}
try:
res = post(URL, data=params , auth=consumer)
res.encoding = 'utf-8'
print(json.loads(res.text)['resultset']['result']['text'])
except Exception as error:
print('=== Error ===')
print('type:' + str(type(error)))
print('args:' + str(error.args))
print('error:' + str(error))
おわり
現場からは以上です。