Edited at

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


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

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

ただし、いつでも使えるという保証はないそうです。(エラー回避へ)


まずはインストール

ダウンロードはこちらから

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)



結果

こんなコードをpython3で実行すると…

print hello




なんか、おこられます。


print 'hello'
^
SyntaxError: Missing parentheses in call to 'print'




この部分をコピーして

SyntaxError: Missing parentheses in call to 'print'




クリップ翻訳を実行すると「カッコがない」ことがわかりました。

image.jpeg


エラー回避

下記のエラーが出て使えない時に試した方法。


最後だけ抜粋

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と差し替えることで使えるようになりました。