2011-01-09 11 views
12

google'ing für eine Weile, wie ist der beste Weg, mit Google Übersetzer in PHP zu übersetzen, gefunden sehr unterschiedliche Möglichkeiten, URLs zu konvertieren, oder mit Js, aber ich möchte es nur mit php (oder mit einer sehr einfachen Lösung JS/jQuery)

Beispiel:

//hopefully with $from_lan and $to_lan being like 'en','de', .. or similar 
function translate($from_lan, $to_lan, $text){ 

// do 

return $translated_text; 

} 

können Sie mir geben einen Anhaltspunkt? oder vielleicht haben Sie bereits diese Funktion ..

meine Absicht ist es, es nur für die Sprachen zu verwenden, die ich nicht bereits definiert habe (oder Schlüssel, die ich nicht definiert habe), deshalb wan ich es so einfach, wird nur temporal sein ..

EDIT

dank für Ihre Antworten wir jetzt diese Soulutions versuchen:

function auto_translate($from_lan, $to_lan, $text){ 
// do 


$json = json_decode(file_get_contents('https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=' . urlencode($text) . '&langpair=' . $from_lan . '|' . $to_lan)); 
$translated_text = $json->responseData->translatedText; 


return $translated_text; 

}

(es gibt eine zusätzliche 'g' war auf var iables für lang ... wie auch immer)

es zurück: funktioniert jetzt :)

ich wirklich nicht viel um die Funktion zu verstehen, so eine Idee, warum das Objekt nicht acepting? (Jetzt tun i)

OR:

function auto_translate($from_lan, $to_lan, $text){ 
    // do 

// $json = json_decode(file_get_contents('https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=' . urlencode($text) . '&langpair=' . $from_lan . '|' . $to_lan)); 
// $translated_text = $json['responseData']['translatedText']; 
    error_reporting(1); 
    require_once('GTranslate.php'); 
    try{ 
     $gt = new Gtranslate(); 
     $translated_text = $gt->english_to_german($text); 

    } catch (GTranslateException $ge) 
    { 
      $translated_text= $ge->getMessage(); 
    } 


    return $translated_text; 
} 

Und dieses sieht gut aus, aber es gibt mir nicht einmal einen Fehler, wird die Seite laden nicht (error_report (1): S)

danke im voraus!

+0

json_decode gibt ein Objekt zurück, kein Array. Also musst du '$ json-> responseData-> translatedText' anstelle von' $ json ['responseData'] ['translatedText'] 'machen, was ich jetzt sehe. – Phoenix

Antwort

11

Ich habe das noch nicht getestet, aber versuchen:

function translate($from_lan, $to_lan, $text){ 
    $json = json_decode(file_get_contents('https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=' . urlencode($text) . '&langpair=' . $from_lan . '|' . $to_lan)); 
    $translated_text = $json->responseData->translatedText; 

    return $translated_text; 
} 

EDIT: Fest, getestet und funktioniert.

+0

vielen dank! die Frage mit deinem Code aktualisiert (es gab einen Wurffehler) und den Fehler erklärend :(aber es können wir es machen es ist genau das, was ich brauche! und sicher ist nützlich für viele andere –

+0

Ich reparierte es und redigierte meinen Code. Es jetzt funktioniert. – Savetheinternet

+0

Ich erhalte einen Fehler. Warnung: file_get_contents() [function.file-get-contents]: Der Wrapper "https" konnte nicht gefunden werden - haben Sie vergessen, es zu aktivieren, als Sie PHP konfigurierten? in D: \ translate.php online 166 Warnung: file_get_contents (https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=Translate&langpair=auto|es) [function.file-get-contents]: Fehler beim Öffnen stream: Keine solche Datei oder Verzeichnis in D: \ translate.php in Zeile 166 Hinweis: Versuchen, Eigenschaft von Nicht-Objekt in D: \ translate.php in Zeile 167 Hinweis: Versuchen, Eigenschaft von Nicht-Objekt in erhalten D: \ translate.php in Zeile 167 – Smith

Verwandte Themen