def getTranslatedText(text, sourceLan='', destLan='en'): ''' A Python Wrapper for Google AJAX Language API: * Uses Google Language Detection, in cases source language is not provided with the source text * Splits up text if it's longer then 4500 characters, as a limit put up by the API ''' baseUrl = "http://ajax.googleapis.com/ajax/services/language/translate" params = ({'langpair': '%s|%s' % (sourceLan, destLan), 'v': '1.0' }) retText = '' for i in getSplits(text): params['q'] = i try: resp = simplejson.load(urllib.urlopen('%s' % (baseUrl), data = urllib.urlencode(params))) try: retText += resp['responseData']['translatedText'] except: retText += 'ERROR START: '+ i + 'END ERROR' except: pass return html_unescape(retText) def getSplits(text,splitLength=4500): # Translate Api has a limit on length of text(4500 characters) that can be translated at once, return (text[index:index+splitLength] for index in xrange(0,len(text),splitLength))