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. Working fine for me, please let me know if i missed something.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | # -*- coding: utf-8 -*-
import re
import sys
import urllib
import simplejson
baseUrl = "http://ajax.googleapis.com/ajax/services/language/translate"
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))
def translate(text,src='', to='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
'''
params = ({'langpair': '%s|%s' % (src, to),
'v': '1.0'
})
retText=''
for text in getSplits(text):
params['q'] = text
resp = simplejson.load(urllib.urlopen('%s' % (baseUrl), data = urllib.urlencode(params)))
try:
retText += resp['responseData']['translatedText']
except:
raise
return retText
def test():
msg = " Write something You want to be translated to English,\n"\
" Enter ctrl+c to exit"
print msg
while True:
text = raw_input('#> ')
retText = translate(text)
print retText
if __name__=='__main__':
try:
test()
except KeyboardInterrupt:
print "\n"
sys.exit(0)
|
I'm just learning.
How do you run this code? I would like to see the output.
Quick Test run/
$~/Desktop$ python recipe-576890-1.py
So as you can see, given the original spanish text(mucho gracias amigo), it uses google language translation API to get the corresponding english translated text. if you are familiar with python, you can also download and import this recipe and can call the translate function to do the language translation yourself. See how test(...) functions uses translate(...) to translate user's input.