pythonでGoogle翻訳が使えるモジュール


Google翻訳が使えるモジュール

英語がわからないのでヘルプやエラーメッセージを理解するのにGoogle翻訳に頼りっぱなしなんですが、さらに頼もしいモジュールを見つけたので、早速、使ってみました。
ただし、いつでも使えるという保証はないそうです。(エラー回避へ)

必要なモジュールのインストール

pip install requests

googletrans のインストール

ダウンロードはこちらから
googletrans · PyPI

pipが使える場合はこのコマンドで
pip install googletrans

iOSPythonista3にインストールする場合は、こちらの記事にもありますが、コンソールから次のコマンドで「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)

(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でアルファバージョンをインストールする方法でもエラーが回避できました。