Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
if sys.version_info[0] < 3:
import urllib2 as ulib
from urllib import quote_plus
else:
import urllib.request as ulib
from urllib.parse import quote_plus
import json
TRANSLATE_URL = 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=%s&langpair=%s%%7C%s'
DETECT_URL = 'http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q=%s'
def google_translate(text, from_, to):
'''Translates a text, from a given language to a given language
using the google language-API'''
if not all([text, from_, to]):
return ''
r = ulib.urlopen(TRANSLATE_URL % tuple(map(quote_plus, [text, from_, to])))
json_data = json.load(r)
r.close()
if json_data['responseStatus'] == 200:
return json_data['responseData']['translatedText']
else:
return ''
def google_detect_lang(text):
'''Detects a language with the google detect-API'''
r = ulib.urlopen(DETECT_URL % (quote_plus(text)))
json_data = json.load(r)
r.close()
if json_data['responseStatus'] == 200:
return json_data['responseData']['language']
else:
return ''
auto_google_translate = lambda text, to: google_translate(text, google_detect_lang(text), to)
if __name__ == '__main__':
text = raw_input('Text to translate: ')
to = raw_input('Translate to?: ')
#lang = google_detect_lang(text)
#print lang
#print google_translate(text, lang, to)
print auto_google_translate(text, to)