Google Translate API Python Script

translate_logoOk, so this isn’t my script but it’s a much nicer version of the one I wrote that scrapes the actual Google translate website to do the same thing. I’d like to thank Ashish Yadav for writing and sharing this.

Translating text is an easy way to create variations of content that is recognized as unique by the search engines. As part of a bigger SEO strategy this can make a big impact on your traffic. Or it could be used to provide an automated way to translate your website to another language.

# -*- 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)
Bookmark and Share

Technorati Tags: , , , , , , ,

Related posts:

  1. Targeting Twitter Trends Script
  2. Amazon Product Advertising API From Python
  3. Scrape Google Search Results Page
  4. Automatically Respond to Twitter Messages
  5. Getting links to a domain using Alexa and Python
Stumble it!


RSS feed | Trackback URI

5 Comments »

Comment by Ralph
2009-09-16 00:21:46

Thanks for sharing. Can you show us the dark side of python?

Thank you!

 
Comment by halotis Subscribed to comments via email
2009-09-16 10:01:08

Google Translate API Python Script – Ok, so this isn’t my script but it’s a much nicer version of the .. http://bit.ly/18hr36

This comment was originally posted on Twitter

 
Comment by Nic Subscribed to comments via email
2009-12-20 14:18:30

There’s another Python module that includes methods for google translate, it’s xgoogle: http://www.catonmat.net/blog/python-library-for-google-translate/

 
2010-01-16 09:45:38

[...] I wondered how nice it would have been to have an inbuilt library to do the word to word translation and avoid the unnecessary manual process. Then first thing that comes to mind is “Google Translator“. I search for the APIs to find that its available in AJAX. Now what would you do if yours isn’t a web application. Find a way to call the AJAX methods through the language you are using.  Thankfully I find the module “simplejson” in python to my rescue. Now write a python script to call the translate API or find it here. [...]

 
Name (required)
E-mail (required - never shown publicly)
URI
Subscribe to comments via email
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped=""> in your comment.

Additional comments powered by BackType