Skip to content

Commit 8d5b095

Browse files
author
alevis
committed
ajax
1 parent 639f588 commit 8d5b095

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

app/translate.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
try:
2+
import httplib # python 2
3+
except ImportError:
4+
import http.client as httplib # Python 3
5+
try:
6+
from urllib import urlencode # Python 2
7+
except ImportError:
8+
from urllib.parse import urlencode # Python 3
9+
import json
10+
from flask_babel import gettext
11+
from config import MS_TRANSLATOR_CLIENT_ID, MS_TRANSLATOR_CLIENT_SECRET
12+
13+
def microsoft_translate(text,sourceLang,destLang):
14+
if MS_TRANSLATOR_CLIENT_ID == "" or MS_TRANSLATOR_CLIENT_SECRET == "":
15+
return gettext('Error: translation service not configured.')
16+
try:
17+
#get access token
18+
params = urlencode({
19+
'client_id':MS_TRANSLATOR_CLIENT_ID,
20+
'client_secret':MS_TRANSLATOR_CLIENT_SECRET,
21+
'scope':'http://api.microsofttranslator.com',
22+
'grant_type':'client_credentials'})
23+
conn = httplib.HTTPSConnection("datamarket.accesscontrol.windows.net")
24+
conn.request("POST","/v2/OAuth2-13",params)
25+
response = json.loads(conn.getresponse().read())
26+
token = response[u'access_token']
27+
28+
#translate
29+
conn = httplib.HTTPConnection('api.microsofttranslator.com')
30+
params = {'appId':'Bearer'+token,
31+
'from':sourceLang,
32+
'to':destLang,
33+
'text':text.encode("utf-8")}
34+
conn.request("GET",'/v2/Ajax.svc/Translate?'+urlencode(params))
35+
response = json.loads("{\"response\":"+conn.getresponse().read().decode('utf-8')+"}")
36+
return response["response"]
37+
except:
38+
return gettext('Error: Unexpected error.')

config.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
# administrator list
2323
ADMINS = ['leevopergmail.com']
2424

25+
# microsoft translation service
26+
MS_TRANSLATOR_CLIENT_ID = '' #enter your MS translator app id here
27+
MS_TRANSLATOR_CLIENT_SECRET = '' #enter your MS translator app secret here
2528

2629
LANGUAGES = {
2730
'en':'English',

0 commit comments

Comments
 (0)