2012-04-26 16 views
7

ich Wort mit Ajax-Request übersetzen to google translate Wenn ich curl verwenden, willl es wie:Wie erhalten und zu analysieren json Antwort von Übersetzungs

curl_init("http://translate.google.com/translate_a/t?client=t&text=hello&sl=en&tl=ru"); 

aber ich kippe serverseitigen Skripts verwenden mit Abfragen, weil sie von der gleichen IP sind
Aber ich kann JSONP Anfrage auch nicht benutzen, weil es nicht erlaubt ist, denke ich. Hier Serverantwort:

[[[ "привет", "Hallo", "Liguster", ""]], [[ "", [ "Алло", "Здравствуйте"]], [ "имя существительное ", [" приветствие "," приветственный возглас "," возглас удивления "]], [" глагол ", [" здороваться "," звать "," окликать "]], [" междометие ", [" привет ",] "здравствуйте", "алло"]]], "en" ,, [["привет", [5], 1,0,1000,0,1,0]], [["Hallo", 4 ,,, ""], ["Hallo", 5, [["привет", 1000,1,0], ["Здравствуй", 0,1,0], ["Здравствуйте", 0,1,0], [" Hallo“, 0,1,0]], [[0,5]], "Hallo"]] ,,, [[ "de"]], 13]

Und i cant laden Inhalt

<iframe src="http://translate.google.com/translate_a/t?client=t&text=hello&sl=en&tl=ru"></iframe> 

weil Antwortinhaltstyp "text/javascript" und Browser downloads a file

PS iframe. Ich kann Inhalt mit PHP-Funktion json_decode() oder mit jquery.ajax dekodieren, weil Antwort json ist beschädigt. Sie können es hier testen http://json.parser.online.fr/

Gib mir einen Rat, bitte

+0

Vorschlag: (a) kaufen Sie eine Lizenz für einen Übersetzungsdienst, der Ihnen ermöglicht, "die gleiche IP" zu verwenden. Oder (b) keine Übersetzungen machen. Die Grenzen, die google auf den Übersetzungsdienst setzt, gibt es aus einem bestimmten Grund. Es scheint, dass Sie nach einem Weg um diese Grenzen suchen. Tu das nicht. – Cheeso

+7

oh Gott. Es ist Experiment, ich will Million-Abfrage Lizenz für eintägiges Experiment nicht kaufen. – Shara

+0

Warum bringst du Gott hinein? Wenn es ein Experiment ist, müssen Sie sich nicht um das gleiche IP-Problem kümmern. – Cheeso

Antwort

12

Versuchen:

http://translate.google.com/translate_a/t?client=p 

, wenn der Client-Parameter etwas anderes als 't' ist es wieder gültig JSON-Daten. Natürlich könnten Sie die Rückgabevariable 't' immer in ein gültiges Array oder JSON umwandeln, aber das ist einfacher.

+0

Danke, puromonogatari! Ich habe dies mit transformieren Weg, aber danke für die erste Lösung – Shara

+1

NP, sollte es jedoch festgestellt werden, dass ich einige Probleme hatte, die Zeichen zu ihm .... Ich konnte den Grund nicht finden, aber aus irgendeinem Grund senden HTML-Entitäten funktioniert gut " & x281 "zum Beispiel, ohne die"; ", versuchen Sie das, wenn Sie irgendwelche Probleme mit der Codierung haben. – puromonogatari

+2

Und es begann mit Captcha – Toolkit

2

Stellen Sie sicher, Header-Parameter "User-Agent" = "Mozilla/4.0" hinzuzufügen. Google fügt captcha hinzu, wenn Sie nicht

Verwandte Themen