Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
type(x) is str
isinstance(x, str)
try:
except Exception:
pass
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import re
import urllib
import urllib2
import json
url = "http://translate.google.com/translate_a/t?client=t&text={0}&hl=en&sl={1}&tl={2}&multires=1"
def printParams(data):
for x in data:
print(u"\t{0}".format(x))
def tr(text, sourcelang, targetlang):
"""
Translates given string(text) from sourcelang to targetlang
using Google Translate
"""
request = urllib2.Request(url.format(text, sourcelang, targetlang),
headers={ 'User-Agent': 'Mozilla/5.0', 'Accept-Charset': 'utf-8' })
response = urllib2.urlopen(request).read()
fixedJSON = re.sub(r',{2,}', ',', response).replace(',]', ']')
data = json.loads(fixedJSON)
result = {}
result["definition"] = data[0][0]
for row in data[1]:
try:
result[row[0]] = row[1]
except:
pass
return result
def main():
"""
Usage:
first arg - string to translate
second arg - source lang
third arg - target lang
"""
if len(sys.argv) == 4:
text = urllib.quote(sys.argv[1])
sl = sys.argv[2]
tl = sys.argv[3]
r = tr(text, sl, tl)
print(u"{0} / {1} / {2}".format(r["definition"][0],
r["definition"][1],
r["definition"][2] or r["definition"][3]))
del r["definition"]
for key, val in r.iteritems():
print(key)
printParams(val)
else:
print(main.__doc__)
if __name__ == '__main__':
main()
@@ -11,0 +12,5 @@
+# Set utf-8 for some stupid terminals
+import codecs
+if sys.stdout.encoding == None:
+ sys.stdout = codecs.getwriter('utf8')(sys.stdout)
+
@@ -16 +21 @@
- print "\t " + val
+ print " " + val
@@ -35,4 +40,5 @@
- if len(sys.argv) == 4:
- list_of_params.update({'text' : sys.argv[1],
- 'sl' : sys.argv[2],
- 'tl' : sys.argv[3] })
# You can run "gtrans en ru hello world" now
+ if len(sys.argv) >= 4:
+ list_of_params.update({'text' : " ".join(sys.argv[3:]),
+ 'sl' : sys.argv[1],
+ 'tl' : sys.argv[2] })
response.on('end', function () {
data = data.replace(/,+/g, ',').replace(/,\]/g,']');
var obj = JSON.parse(data);
callback(obj[0].map(function (sentence) { return sentence[0]; }).join(''));
});
mplayer "http://translate.google.com/translate_tts?tl=en&q=hello+world"
google translate script