Thursday, November 15, 2012

Membuat Kamus Translate dengan google API

Membuat Program Penerjemah Kalimat dengan Google Translate API
Pada posting yang lalu, ada program kamus yang dibuat dengan menggunakan PHP dan XML. Keakuratan aplikasi tersebut dalam menerjemahkan akan tergantung dari isi file XML yang ada. Semakin file XML tersebut lengkap, tentunya aplikasi kamus akan nampak semakin canggih.

Pada tip kali ini, kita akan membuat membuat aplikasi untuk menerjemahkan kalimat Bahasa Indonesia ke dalam empat bahasa dunia, yaitu Inggris, Italia, Spanyol dan Perancis. Tentunya kita tidak akan menyimpan data vocab masing-masing bahasa ataupun mengkodekan struktur grammar dari bahasa-bahasa tersebut. Google Translate API akan dapat kita gunakan untuk membantu dalam melakukan penerjemahan.

Langkah-langkah untuk membuatnya adalah:

Kita buat terlebih dulu halaman awal untuk menerima teks Bahasa Indonesia serta memilih bahasa tujuan. Kita simpan file ini dengan nama index.php sebagai halaman awal yang nanti dipanggil.

<html>
<head>
<title>Menerjemahkan dengan Google Translate API</title>
</head>
<body>
<h2>Masukkan teks dalam Bahasa Indonesia</h2>
<form method="post" action="translate.php"><br>
<input type="text" size=50 name="teks"><br>
<select name="tujuan">
    <option value="en">Inggris</option>
    <option value="it">Italia</option>
    <option value="es">Spanyol</option>
    <option value="fr">Perancis</option>   
</select>
<input type="submit" value="Terjemahkan" name="oke">
</form>

</body>
</html>


Kita siapkan modul untuk melakukan proses penerjemahan dalam file PHP yang bernama translate.php. Kita buat terlebih dulu header HTML-nya.


<html>
<head>
<title>Hasil terjemahan</title>
<style type="text/css">
body {
      background-color : #FFFFFF;
      font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;
      color : #000088;
      margin: 5px;
      }
</style>
</head>

<body>


Berikutnya kita akan membuat sebuah class PHP yang bertugas untuk memanggil Google Translate API dan menampilkan hasil terjemahan dari bahasa yang telah dipilih. Ada beberapa atribut yang perlu dideklarasikan di awal class ini.

<?php
class GoogleTranslateApi{

    var $BaseUrl = 'http://ajax.googleapis.com/ajax/services/language/translate';
    var $FromLang = 'id';
    var $ToLang = '';
    var $Version = '1.0';
    
    var $CallUrl;
    
    var $Text = '';
    
    var $TranslatedText;
    var $DebugMsg;
    var $DebugStatus;
    
    function GoogleTranslateApi(){
        $this->CallUrl = $this->BaseUrl . "?v=" .
        $this->Version . "&q=" . urlencode($this->Text) .
        "&langpair=" . $this->FromLang . "%7C" . $this->ToLang;
    }
    
    function makeCallUrl(){
        $this->CallUrl = $this->BaseUrl . "?v=" .
        $this->Version . "&q=" . urlencode($this->Text) .
        "&langpair=" . $this->FromLang . "%7C" . $this->ToLang;
    }
    
    function translate($text = ''){
        if($text != ''){
            $this->Text = $text;
        }
        $this->makeCallUrl();
        if($this->Text != '' && $this->CallUrl != ''){
            $handle = fopen($this->CallUrl, "rb");
            $contents = '';
            while (!feof($handle)) {
            $contents .= fread($handle, 8192);
            }
            fclose($handle);
            
            $json = json_decode($contents, true);
            
            if($json['responseStatus'] == 200){ //Request berhasil
                $this->TranslatedText = $json['responseData']['translatedText'];
                $this->DebugMsg = $json['responseDetails'];
                $this->DebugStatus = $json['responseStatus'];
                return $this->TranslatedText;
            } else { //Ada kesalahan
                return false;
                $this->DebugMsg = $json['responseDetails'];
                $this->DebugStatus = $json['responseStatus'];
            }
        } else {
            return false;
        }
    }
}
$translate = new GoogleTranslateApi;
$to=$_POST['tujuan'];

$translate->FromLang = 'id';
$translate->ToLang = $to;
switch ($to)
{
  case 'en':$tolang="Inggris";break;
  case 'it':$tolang="Italia";break;
  case 'es':$tolang="Spanyol";break;
  case 'fr':$tolang="Perancis";break;
}
$teks=$_POST['teks'];
echo '<center>Google menerjemahkan <br>
      <b>"'.$teks.'"</b><br><br>
      ke dalam bahasa '.$tolang.' menjadi: <br><b>"';
echo $translate->translate($teks).'"</b>';

?>

</body>

</html>




Berikut adalah beberapa contoh tampilan yang didapatkan:







Newer Post Older Post Home
Comments
0 Comments

0 comments:

Post a Comment