27 November 2011

membuat terjemahan di dalam php

GampSMSAkhir-akhir ini saya suka sekali memposting tentang API (Application Programming Interface). Setelah kemarin memposting artikel tentang Paypal API untuk cek balance, untuk artikel kali ini saya akan mencoba memaparkan cara membuat script PHP untuk menterjemahkan teks dari bahasa tertentu ke bahasa lain memanfaatkan Google Translate API.
Dengan script buatan sendiri ini, Anda tidak perlu lagi membuka situs Google Translate setiap kali akan menterjemahkan sebuah teks, namun cukup membuka aplikasi yang telah dibuat sendiri ini. Bahkan, Anda bisa menambahkan semacam widget di situs web Anda untuk layanan penterjemahan sembarang teks.

OK, sebelum kita mulai membuat script penterjemah teks ini, terlebih dahulu kita harus mengaktifkan API untuk Google Translate ini. Untuk mengaktifkan API ini, silakan Anda login ke https://code.google.com/apis/console/?api=translate menggunakan akun Google Anda. Jika belum memilikinya, maka silakan registrasi dahulu.
Setelah Anda berhasil login, maka akan muncul tampilan berikut ini jika sebelumnya belum pernah mengaktifkan Google API.
Google API Translate
Selanjutnya, klik tombol ‘Add project’, lalu muncul beberapa layanan API Google. Dari beberapa layanan API tersebut, cari ‘Translate API’ dan klik tombol ‘Activate’.
Google API Translate
Untuk mendapatkan layanan akses ke Google API, setiap user akan mendapatkan API Access yang berupa kode tertentu. Kode ini berfungsi sebagai autentikasi kepada setiap user yang mengakses API. Kode API Access Anda dapat dilihat di menu ‘API Access’.
Google API Translate
Setelah Anda klik API Access, maka Anda akan menjumpai suatu kode sbb (perhatikan kode yang di kotak merah):
Google API Translate
itulah kode API Access Anda.
OK… sampai sini, kita sudah mengaktifkan Google API Translate dan juga mendapatkan kode API Access nya. Sekarang kita bisa mulai membuat script penterjemahannya.
Pertama, kita buat dahulu form untuk input teks yang akan diterjemahkan.
form.html
01.<html>
02.<head>
03.   <title>Aplikasi Penterjemah Bahasa</title>
04.</head>
05.<body>
06.<h1>Aplikasi Penterjemah Bahasa</h1>
07.<form method="post" action="translate.php">
08.Masukkan Teks : <br>
09.<textarea name="teks" cols="40" rows="5"></textarea>
10.<br><br>
11.Dari bahasa
12.<select name="from">
13.   <option value="id">Indonesia</option>
14.   <option value="en">Inggris</option>
15.   <option value="ma">Malaysia</option>
16.   <option value="fr">Perancis</option>
17.   <option value="es">Spanyol</option>
18.   <option value="de">Jerman</option>
19.   <option value="nl">Belanda</option>
20.</select>
21. 
22.ke bahasa
23.<select name="to">
24.   <option value="id">Indonesia</option>
25.   <option value="en">Inggris</option>
26.   <option value="ma">Malaysia</option>
27.   <option value="fr">Perancis</option>
28.   <option value="es">Spanyol</option>
29.   <option value="de">Jerman</option>
30.   <option value="nl">Belanda</option>
31.</select>
32. 
33.<input type="submit" name="submit" value="Terjemahkan">
34. 
35.</form>
36.</body>
37.</html>
Perhatikan, pada kode HTML form di atas. Dalam form kita buat dua buah combo box untuk memilih penterjemahannya dari bahasa tertentu ke bahasa tertentu. Untuk masing-masing bahasa terdapat identitas sendiri, misalnya bahasa Indonesia menggunakan ‘id’, bhs Inggris dengan ‘en’. Identitas bahasa ini nanti akan dibaca oleh Google API Translate dan digunakan untuk proses penterjemahan. Berikut ini adalah tampilan form di atas
Google API Translate
Selanjutnya kita buat script translate.php nya yang akan memproses form di atas.
translate.php
01.<?php
02. 
03.// masukkan API Access di sini
04.$key = "...";
05. 
06.// membaca teks dari form
07.$teks = urlencode($_POST['teks']);
08. 
09.// dari bahasa
10.$dariBhs = $_POST['from'];
11. 
12.// ke bahasa
13.$keBhs = $_POST['to'];
14. 
15.// URL untuk mengakses Google API Translate
16.$url = "https://www.googleapis.com/language/translate/v2?key=".$key."&q=".$teks."&source=".$dariBhs."&target=".$keBhs."&callback=response";
17. 
18.// membaca respon dari server Google
19.$fetch = file_get_contents($url);
20. 
21.// menampilkan respon
22.echo $fetch;
23. 
24.?>
Jika script di atas dijalankan maka akan muncul respon sbb (jika form diisikan ‘Halo apa kabar?, dan penterjemahan dilakukan dari bahasa Indonesia ke bahasa Inggris’):
Google API Translate
Dari bentuk respon di atas, tampak bahwa respon dari Google API disajikan dalam format JSON yang diapit oleh
response(…)
Nah… sekarang tugas kita adalah mengekstrak respon dalam bentuk JSON tersebut, untuk mengambil hasil terjemahannya saja yang ada pada bagian “translatedText”: “Hello how are you doing?”
Berikut ini kita adalah script translate.php yang di dalamnya sudah ditambahkan beberapa perintah untuk parsing JSON.
translate.php
01.<?php
02. 
03.// masukkan API Access di sini
04.$key = "...";
05. 
06.// membaca teks dari form
07.$teks = urlencode($_POST['teks']);
08. 
09.// dari bahasa
10.$dariBhs = $_POST['from'];
11. 
12.// ke bahasa
13.$keBhs = $_POST['to'];
14. 
15.// URL untuk mengakses Google API Translate
16.$url = "https://www.googleapis.com/language/translate/v2?key=".$key."&q=".$teks."&source=".$dariBhs."&target=".$keBhs."&callback=response";
17. 
18.// membaca respon dari server Google
19.$fetch = file_get_contents($url);
20. 
21.// mengambil data JSON yang terletak di dalam response(...)
22.$splits1 = explode("response(", $fetch);
23.$splits2 = explode(");", $splits1[1]);
24. 
25.// mengekstrak data JSON
26.$hasil = json_decode($splits2[0], true);
27. 
28.// mengambil teks hasil terjemahan dari data JSON
29.$translate = $hasil["data"]["translations"][0]["translatedText"];
30. 
31.// menampilkan hasil terjemahan
32.echo "<p><b>Teks asli: </b>".$_POST['teks']."</p>";
33.echo "<p><b>Hasil terjemahan: </b>".$translate."</p>";
34.?>
Dan… tampilan dari script di atas setelah dimodifikasi adalah sbb:
Google API Translate
Mudah bukan cara membuatnya??? Oya… hanya sayangnya Google API Translate ini terbatas melayani maksimum 100.000 karakter perhari untuk diterjemahkan untuk sebuah API Access.
Selamat mencoba, semoga ada manfaatnya.

Tidak ada komentar:

Poskan Komentar