-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathTranslator.py
More file actions
63 lines (54 loc) · 1.81 KB
/
Translator.py
File metadata and controls
63 lines (54 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# -*- coding: iso-8859-1 -*-
from urllib2 import urlopen
from urllib import urlencode
import sys
#import Transliterate
GOOGLE_MAX_CHAR = 680;
def detect_lang(text):
base_url="http://www.google.com/uds/GlangDetect?callback=google.language.callbacks.id100&"
params=urlencode( (('v',2.0),('q',text)))
url=base_url+params
content=urlopen(url).read()
start_idx=content.find('"language":"')+12
language=content[start_idx:]
end_idx=language.find('","')
language=language[:end_idx]
return language
def translate(text):
'''
Returens a string with the translation
'''
paragraphs = text.split('\n')
#lang1 = detect_lang(paragraphs[0][:600])#detects the langauge of the input, we don't need it here
lang1 = "ar"
lang="en" #destination language
langpair = '%s|%s'%(lang1,lang)
base_url = 'http://ajax.googleapis.com/ajax/services/language/translate?'
translation = ''
index = 0
for p in paragraphs:
cut = False
index += 1
if len(p.strip()) < 1: continue
if len(p) > GOOGLE_MAX_CHAR:
paragraphs.insert(index, p[GOOGLE_MAX_CHAR:])
p = p[:GOOGLE_MAX_CHAR]
cut = True
params = urlencode((('v',1.0), ('q',p),('langpair',langpair)))
url = base_url + params
content = urlopen(url).read()
start_idx = content.find('"translatedText":"')+18
_translation = content[start_idx:]
end_idx = _translation.find('"}, "')
translation += _translation[:end_idx]# + '\n'
if cut: newline = ''
else: newline = '\n'
#translation+= _translation[:end_idx].replace('\u0026quot;', '"') + "\n"
return translation
def arabiTranslate(text):
#x = Transliterate.Transliteration(Transliterate.ARABIC)
#arabicText = x.getTransliteration(text).encode("UTF-8");
#print arabicText
return translate(text)
if __name__ == "__main__":
print arabiTranslate("3arabi")