Google language / detect API
Verfasst: Sonntag 14. Februar 2010, 15:33
Nichts besonderes, 2 Funktionen, eine Funktion "übersetzt" einen String, mit der Google language API und die Andere "erkennt" die Sprache in der der String geschrieben ist, mit der Google detect API
Es wäre schön wenn einer das Skript mit python 3 testen könnte
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)