PHP ile Google Translate API Bağlantısı

0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Tepki puanı
36
Google bu bağlantı için bir sınıf yazmışmış, yeni fark ettim. Gayette pratik bir kullanımı var.

PHP:
<?php
require("GTranslate.php");
 try{
       $gt = new Gtranslate;
       echo "Translating [Hello World] from English to German => ".$gt->english_to_german("hello world")."<br/>";
        echo "Translating [Ciao mondo] Italian to English => ".$gt->it_to_en("Ciao mondo")."<br/>";
 } catch (GTranslateException $ge)
 {
       echo $ge->getMessage();
 }
?>

http://gtranslate-api-php.googlecode.com/files/gtranslate-api-php.0.7.1.zip
 
0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Tepki puanı
36
Ortalama 1500 karakterden uzun metin gönderildiğinde sorun çıkabiliyor (veriler GET yolu ile gönderiliyor) ufak bir ara fonksiyon yazdım, metinleri parça parça yollatıyorum.

Kod şu şekilde:

PHP:
$language = array('ar','bg','zh-CN','hr','cs','da','nl','en','fi','fr','de','el',' hi','it','ja','ko','no','pl','pt','ro','ru','es',' sv','tr');
function cevirbunu($ceviri, $d1, $d2)
{
$ceviri= urlencode($ceviri);
$json = file_get_contents("http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=".$ceviri."&langpair=".$d1."%7C" .$d2);
$stdClass=json_decode($json);
return $stdClass->responseData->translatedText;
}

$metin=""; // Çevirilecek metin
$toplamsatir=strlen($metin);
$kackere=ceil($toplamsatir/1500);
$satiral=$toplamsatir;
for ($i=0;$i<$kackere;$i++) {
$basla=$i*1500;
if ($toplamsatir > 1500) {
$satiral=1500;
$toplamsatir=$toplamsatir-1500;
}
else { 
$satiral=$toplamsatir; 
}
$metin=substr($metin,$basla,$satiral);
$metin2.=cevirbunu($metin, 'en', 'tr'); 
}
echo 'Yeni Metin: '.$metin2;
 
0
Onaylı Üye
Üye
Katılım
26 Ekim 2006
Mesajlar
336
Tepki puanı
1
Vayy harikasin hocam böle bir api den haberdar ettiğin için tşk ederim. Kodda yazmışsın yemede yanında yat :)
 
Geri
Üst