akhirnya tercetus ide untuk membuat (lebih tepatnya mencari) code yang bisa dieksekusi di python. Tentu saja banyak aplikasi yang berjalan dengan modus GUI yang berjalan di platform OS-WINDOWS atau (sedikit) LINUX, beberapa mungkin bebayar alias tidak gratis.
setelah mencoba dan terus mencoba, akhirnya henkhei mencoba untuk sharing kode yang mudah sekali di implementasikan, kebetulan saya menggunakan LINUX, dan mungkin sedikit penyesuaian untuk instalasi di WINDOWS :
Depedensi dari kode ini SIMPLE-JSON pada PYTHON, untuk itu pertama-tama instalasikan module atau library python dengan :
# sudo apt-get install python-simplejson
atau dengan men-download sourcecodenya
# wget http://pypi.python.org/packages/source/s/simplejson/simplejson-2.0.4.tar.gz#md5=9a888ea017ef2fcd42a2823454950b16
# tar zxf simple-2.0.4.tar.gz
# cd simple-2.0.4
# sudo python setup.py install
ket:saat instalasi paket pypi python harus konek internet
Selanjutnya lakukan perintah dibawah ini
# cd python-googlelanguage-read-only
# sudo python setup.py install
setelah selesai melakukan instalasi di atas buat kode python di bawah ini (modifikasikan dengan bebas, dan suka-suka yang penting program berjalan he..he..he..) :
# -*- coding: utf-8 -*-
import re
import sys
import urllib
import simplejson
baseUrl = "http://ajax.googleapis.com/ajax/services/language/translate"
def getSplits(text,splitLength=4500):
'''
Translate Api has a limit on length of text(4500 characters) that can be translated at once,
'''
return (text[index:index+splitLength] for index in xrange(0,len(text),splitLength))
def translate(text,src='', to='en'):
'''
A Python Wrapper for Google AJAX Language API:
* Uses Google Language Detection, in cases source language is not provided with the source text
* Splits up text if it's longer then 4500 characters, as a limit put up by the API
'''
params = ({'langpair': '%s|%s' % (src, to),
'v': '1.0'
})
retText=''
for text in getSplits(text):
params['q'] = text
resp = simplejson.load(urllib.urlopen('%s' % (baseUrl), data = urllib.urlencode(params)))
try:
retText += resp['responseData']['translatedText']
except:
raise
return retText
def test():
msg = " Write something You want to be translated to English,\n"\
" Enter ctrl+c to exit"
print msg
while True:
text = raw_input('#> ')
retText = translate(text)
print retText
if __name__=='__main__':
try:
test()
except KeyboardInterrupt:
print "\n"
sys.exit(0)