27 февр. 2010 г.

Python Google Translate снипет

Недавно появился отличный сниппет для перевода через Google Translate AJAX module, питоном. Его текст:


# -*- coding: utf-8 -*-

import re, urllib

import simplejson as json



class UrlOpener(urllib.FancyURLopener):

    version = "py-gtranslate/1.0"



base_uri = "http://ajax.googleapis.com/ajax/services/language/translate"



def translate(phrase, src="uk", to="en"):

    data = urllib.urlencode({'v''1.0''langpair''%s|%s' % (src, to), 'q': phrase.encode('utf-8')})

    resp = json.load(UrlOpener().open('%s?%s' % (base_uri, data)))

    try:

        return resp['responseData']['translatedText']

    except:

        return ""


Стоит ли говорить, что для дорвейщика или черного оптимизатора этот сниппет настоящий подарок.

Пример использования для не человекоприятной уникализации:


phrase = u'Карл у Клары украл кораллы, а Клара у Карла украла кларнет.'

eng_ver = translate(phrase, src="ru", to="en")

phrase = translate(eng_ver, src="en", to="ru")


Получилось:

Карл украл кораллы, Клара, а Клара украла у Карла кларнет.




Комментариев нет: