22
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2018-09-03

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'


クリップ翻訳を実行すると「カッコがない」ことがわかりました。 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と差し替えることで使えるようになりました。

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

22
28
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?