Here is a simple utility created using Python for translating text from various languages into English. It uses the Google AJAX API to do this.
Usage
prashanth@prashanth-desktop:~$ translate bonjour
hello
prashanth@prashanth-desktop:~$ translate guten morgen
Good morning
Code
#!/usr/bin/env python
'''
Translates text into english using Google Translate.
Usage: python translate.py
(or)
echo | python translate.py
For convenience, make a symlink to this file from /usr/bin/translate.
'''
# derived from : http://code.google.com/p/py-gtranslate/source/browse/trunk/gtrans.py
import sys
import urllib2
import urllib
import simplejson as json
FROM_LANGUAGE = ''
TO_LANGUAGE = 'en'
BASE_URL = 'http://ajax.googleapis.com/ajax/services/language/translate'
def translate(from_language, to_language, text):
langpair = '%s|%s' % (from_language, to_language)
params = {'v': '1.0', 'langpair': langpair, 'q': urllib.quote_plus(text)}
params = '%s' % ('&'.join(['%s=%s' % (k,v) for (k,v) in params.items()]))
url = '%s?%s' % (BASE_URL, params)
resp = json.load(urllib2.urlopen(url))
try:
return resp['responseData']['translatedText']
except:
return text
def main(text):
if text:
print translate(FROM_LANGUAGE, TO_LANGUAGE, text)
else:
lines = [l.strip() for l in sys.stdin.readlines()]
for line in lines:
if line:
text = translate(FROM_LANGUAGE, TO_LANGUAGE, line)
print '[%s]' % line
print text
else:
print
if __name__ == '__main__':
args = sys.argv[1:]
text = ' '.join(sys.argv[1:])
main(text)