Google翻訳が使えるモジュール
英語がわからないのでヘルプやエラーメッセージを理解するのにGoogle翻訳に頼りっぱなしなんですが、さらに頼もしいモジュールを見つけたので、早速、使ってみました。
ただし、いつでも使えるという保証はないそうです。(エラー回避へ)
必要なモジュールのインストール
pip install requests
googletrans のインストール
ダウンロードはこちらから
googletrans · PyPI
pipが使える場合はこのコマンドで
pip install googletrans
iOSのPythonista3にインストールする場合は、こちらの記事にもありますが、コンソールから次のコマンドで**「StaSh」**をインストールするとpip
コマンドが使えるようになるので外部モジュールのインストールが楽になります。
import requests as r; exec(r.get('http://bit.ly/get-stash').text)
コード(クリップ翻訳.py)
クリップボードの内容を翻訳してクリップボードにコピーするスクリプトを書きました。
動作確認 : iOSのPythonista3
import console
import clipboard
from googletrans import Translator
# コンソール画面の文字サイズと色を変更
console.clear()
console.set_font('Menlo',16)
console.set_color(0,1,0)
# クリップボードから5000文字を翻訳
text=clipboard.get()[:5000]
print('原文',len(text),'byte')
print(text+'\n')
# 翻訳
text = (Translator().translate(text, dest = 'ja').text)
# 翻訳をコンソールに表示
console.set_color(1,1,0)
print('翻訳')
print(text)
console.set_color(1,1,1)
# アラートを表示
title = '翻訳'
message = text
button1 = 'コピー'
button2 = 'キャンセル'
button = console.alert( title, message, button1, button2, hide_cancel_button=True)
# [コピー]がタップされたら結果をクリップボードにコピー
if button == 1:
clipboard.set(text)
エラー回避のため # 翻訳 の部分を修正(2020/11/9)
# 翻訳
tr = Translator()
while True:
try:
text = tr.translate(text, dest="ja").text
break
except Exception as e:
tr = Translator()
結果
こんなコードをpython3で実行すると…
print “hello”
なんか、おこられます。
print 'hello'
^
SyntaxError: Missing parentheses in call to 'print'
この部分をコピーして
SyntaxError: Missing parentheses in call to 'print'
クリップ翻訳を実行すると「カッコがない」ことがわかりました。
エラー回避
下記のエラーが出て使えない時に試した方法。
gtoken.py", line 57, in _update
code = unicode(self.RE_TKK.search(r.text).group(1)).replace('var ', '')
AttributeError: 'NoneType' object has no attribute 'group'
- 2018/10/2:回避できました。
- 2018/11/30:回避できました。
エラー回避方法。
speaktech様から教えていただきました。(2018/10/2)
googletrans/gtoken.py
を
こちらのgtoken.pyと差し替えることで使えるようになりました。
上記の方法でもエラーを回避できなくなりました。(2020/11/9)
こちらの記事で紹介されているように、何度もトライすることで対策してます。
【python】googletransの『AttributeError: 'NoneType' object has no attribute 'group'』対策 - Qiita
こちらの記事で紹介されている方法でエラー回避できました。(2021/1/10)
【python】googletransの『AttributeError: 'NoneType' object has no attribute 'group'』対策【2020/12/02追記】 - Qiita
GITにあるものにインストールしなおし、サービスURLを変更するという方法でエラーが回避できました。
また、記事内のコメント欄で@t4t5u0様が紹介してくれた、pip install googletrans==4.0.0-rc1
でアルファバージョンをインストールする方法でもエラーが回避できました。