Cara menggunakan TRNSLATE pada Python

Python-Google-Translate

Python Google Translate by python.web.id

Cara menggunakan TRNSLATE pada Python

/*******************************
Credit By : http://python.web.id
Author    : Agus Makmun (Summon Agus)
Name      : Python Google Translate.
Powered   : Python
Licence   : GNU GENERAL PUBLIC LICENSE Version 2, June 1991.
Tanks to  : Kamyar Ghasemlou ( for adding tab file ).
********************************/

Project Python Google Translate - Program ini merupakan program Translate Bahasa yang memanfaatkan Layanan Google Translate yang diambil fungsi translatenya kemudian di terapkan pada Python Programming.

Program ini ada 2 file berupa:
1. Translate.py ( merupakan programnya )
2. id_country.txt ( merupakan database ID Negara dan Nama Negara )

Untuk File lengkapnya bisa langsung bisa dilihat di github: https://github.com/agusmakmun/Python-Google-Translate/

Cara Kerja:

Untuk cara kerjanya sendiri, jadi kita mengambil hasil result dari Google Translate ketika kita inputkan data tertentu untuk kemudian di translate ke bahasa yang kita inginkan. Dan module yang kita gunakan adalah module urllib2 untuk mengakses ke Internet.

Pengambilan ID Country dan Name Country

Disini kami sedikit mengakali bagaimana caranya agar mendapatkan ID dan Nama Negara saja dengan menggunakan Python, karena untuk keperluar tampilan ID dan Nama Negaranya di Program yang kita buat.
import urllib2
url = 'https://translate.google.com/m?mui=tl'
agent = {'User-Agent':'Mozilla/5.0'}
cari_hasil = 'div class="small">'
end_tag = 'div class="small center">'
request = urllib2.Request(url, headers=agent)
page = urllib2.urlopen(request).read()
result = page[page.find(cari_hasil)+len(cari_hasil):]
res = result.replace('<br>', '').replace('Send us feedback', '').replace('in:<b>Mobile</b>', '')

operasi = res.split()

count = 0
while True:
    try:
        count += 1
        spl = operasi[count].split()
        y = spl
        for s in y:
            repp = s.replace('</a><a', '').replace('href="http://translate.google.com/m?tl=', '').replace('">', '')            
            kode = repp[:2]
            negara = repp[2:].replace('</a></div><div', '')
                
            if negara >= 'ass="small':
                break
            print kode, negara
        
    except IndexError:
        break

Dari script diatas, data yang kita dapatkan hasilnya adalah seperti ini..

af Afrikaans
sq Albanian
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bn Bengali
bs Bosnian
bg Bulgarian
ca Catalan
ny Chichewa
zh -CNChinese
zh -TWChinese
hr Croatian
cs Czech
da Danish
.....etc

Masalah yang dihadapi: Dari situ kita sudah mendapatkan data dengan ID dan Name Country, namun yang menjadi masalah adalah pada bagian data zh -CNChinese dan zh -TWChinese yang seharusnya ID-nya adalah zh-CN dan zh-TW (tanpa spasi).

Itu sebabnya mengapa kita membuat Database baru yang bernama id_country.txt, sebenarnya tanpa ini kita juga sudah bisa memanfaatkan Python Google Translate ini. Namun untuk mempermudah user dengan adanya tampilan data dari ID dan Name Country, sehingga tidak bingung ketika ingin memasukkan ID pada bahasa yang mereka tidak kenal.

Didalam id_country.txt sendiri jika memang datanya seperti pada zh -CNChinese dan zh -TWChinese dengan menggunakan spasi, seperti yang ada pada data diatas, kami juga telah mengutiknya dengan membuatkan program seperti ini:

import UserString

f = open('id_country.txt', 'r')
count_me = 0
lines = f.readlines()
for i in lines:
    count_me += 1
    if i[3] == '-':
        depan = i[:2] + i[3:6]
        belakang = UserString.MutableString(i).replace('\n', '')
        del belakang[:6]
        print depan,'\t', belakang            

    else:
        print i[:2], '\t', i[3:].replace('\n', '')

Dan akan menghasilkan seperti ini (dengan tab):

af 	Afrikaans
sq 	Albanian
ar 	Arabic
hy 	Armenian
az 	Azerbaijani
eu 	Basque
be 	Belarusian
bn 	Bengali
bs 	Bosnian
bg 	Bulgarian
ca 	Catalan
ny 	Chichewa
zh-CN 	Chinese
zh-TW 	Chinese
hr 	Croatian
cs 	Czech
da 	Danish
.....etc

Dengan adanya tampilan yang demikian, maka muncul kendala lagi, yaitu akan memboroskan tampilan layar, oleh sebab itu alhamdulillah dengan bantuan dari forum stackoverflow oleh jawaban Kamyar Ghasemlou terjawab dengan menambahkan tab baru dengan panjang dari data yang dibagi 2, dan tampilan yang setelahnya menambah tab baru (hal ini akan lebih meminimalisir tampilan dari layar).

Kemudian kita kembangkan lagi menjadi 3 tab dengan script berikut ini:

f = open('id_country.txt','r')
lines = f.readlines()
panjang = len(lines)

for i in range(panjang/3):
    print lines[i].replace('\n', ''),'\t', lines[i + panjang/2].replace('\n', ''),'\t', lines[i + panjang/3].replace('\n', '')
if panjang%2: #if it is odd
    print lines[-1].replace('\n', '')

Yang pada hasil endingnya adalah menjadi seperti ini: Maaf untuk lebih bagusnya seperti ini: https://gist.github.com/agusmakmun/40ac361269b2b9703e34

af Afrikaans 	ko Korean 	ht Haitian
sq Albanian 	lo Lao  	ha Hausa
ar Arabic 	la Latin 	iw Hebrew
hy Armenian 	lv Latvian 	hi Hindi
az Azerbaijani 	lt Lithuanian 	hu Hungarian
eu Basque 	mk Macedonian 	is Icelandic
be Belarusian 	mg Malagasy 	ig Igbo
bn Bengali 	ms Malay 	id Indonesian
bs Bosnian 	ml Malayalam 	ga Irish
bg Bulgarian 	mt Maltese 	it Italian
ca Catalan 	mi Maori 	ja Japanese
ny Chichewa 	mr Marathi 	jw Javanese
zh -CNChinese 	mn Mongolian 	kn Kannada
zh -TWChinese 	my Myanmar 	kk Kazakh
hr Croatian 	ne Nepali 	km Khmer
cs Czech 	no Norwegian 	ko Korean
....etc

Naah demikianlah dokumentasi singkat dari proses pembuatan Project Python Google Translate, jika dirasakan orang yang baru mengenal python seperti saya, rasanya sangat puas apabila sukses membuat program sesuai dengan apa yang kita inginkan.. :D