谷歌翻译
来自 PostgreSQL 维基
跳转到导航跳转到搜索此函数使用 谷歌翻译 服务翻译字符串。
CREATE OR REPLACE FUNCTION gtranslate(src text, target text, phrase text) RETURNS text
LANGUAGE plpythonu
AS $$
import re
import urllib
import simplejson as json
class UrlOpener(urllib.FancyURLopener):
version = "py-gtranslate/1.0"
base_uri = "http://ajax.googleapis.com/ajax/services/language/translate"
default_params = {'v': '1.0'}
def translate(src, to, phrase):
args = default_params.copy()
args.update({
'langpair': '%s%%7C%s' % (src, to),
'q': urllib.quote_plus(phrase),
})
argstring = '%s' % ('&'.join(['%s=%s' % (k,v) for (k,v) in args.iteritems()]))
resp = json.load(UrlOpener().open('%s?%s' % (base_uri, argstring)))
try:
return resp['responseData']['translatedText']
except:
# should probably warn about failed translation
return phrase
return translate(src, target, phrase)
$$;
该代码最初来源于 http://code.google.com/p/py-gtranslate 提供的代码。
例子
SELECT gtranslate('de', 'en', 'Die Würde des Menschen ist unantastbar. Sie zu achten und zu schützen ist Verpflichtung aller staatlichen Gewalt.');
gtranslate
--------------------------------------------------------------------------------------------------
Human dignity is inviolable. To respect and protect it shall be the duty of all state authority.
(1 row)
(来自德意志联邦共和国宪法)