Webstatt.org - Community seit 2006 - 2012 (2024?)

google translator abfragen

user-344
19.04.2006 22:50

hallo zusammen,

ich habe mir überlegt, wie man ein z.B. englisches Wort übersetzen könnte... eine möglichkeit wäre, dass ich das wort per google translator übersetzen könnte... wäre das überhaupt möglich?

ich bräuchte ja eigentlich die mysql daten von der datenbank von google... oder gibt es da eine andere variante?

Ich weiss das dies verboten ist, es ist nur reine neugier...

also wäre das überhaupt möglich? Oder müsste man tatsächlich ein eigenes Wörterbuch schreiben?

Danke
mfg
web4

Avatar user-255
19.04.2006 23:04

Du musst einfach das translator Skript von PHP aufrufen lassen und GET bzw. POST Daten übergeben und die Ausgabe parsen.
Könnte allerdings sein, dass Google ein API bereitstellt, mit dem das parsen vereinfacht werden würde.

Als Alternative könntest dir die Datenbank von http://dict.tu-chemnitz.de/ ziehn und in mySQL einspeisen, dann würdest du dir die Abfrage des Google Servers sparen.

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
user-344
19.04.2006 23:09

mhmm ok also der erste schritt ist mir mir klar... ich gebe die daten per post an das skript.

Aber wie meinst du das mit dem parsen? Also wie muss ich vorgehen wenn ich die daten abgeschickt habe. Wie kann ich danach das ergebnis auslesen?
mir kommt grerade die idee, dass ich den code auslesen könnte und dem skript einfach sagen würde, dort wo das textfeld im code steht, soll er den inhalt speichern... und danach weitergeben.

meinst du so?

danke für deine hilfe
gruss

//ahh ja das sieht auch gut aus... da müsste ich eifach noch das txt file in eine db umwandeln... aber das wäre natürlich eine sehr schön lösung.... ohne copyright verletzungen!

nochmals vielen user-158k!

Avatar user-125
20.04.2006 08:07

Bei Google darf man das glaub ich nicht (Ka ob es wirklich so ist). Deswegen -> http://dict.leo.org

Liebe user-125y aka user-125 aka dionysos
Avatar user-253
20.04.2006 08:07

Original von user-344
Wie kann ich danach das ergebnis auslesen?


Genau dies meinte user-255 (denke ich zwinkern). Den Server abzufragen ist trivial nur bekommst du ja nicht nur das übersetzte Wort als Antwort sondern eine komplette Webseite aus der du die Übersetzung filtern müsstest.

user-344
20.04.2006 08:43

achso ok dann hab ich das doch richtig verstandenlächeln
das werde ich mal versuchen!

ich habe auch gemeint, dass ich mal gelesen habe, dass man den Google Translator nicht auf diese art und weise benützen kann. Aber Leo kann man?

mit welcher php funktion kann man eigentlich den quellcode auslesen?

vielen dank für eure hilfe...

Avatar user-253
20.04.2006 08:47

mit welcher php funktion kann man eigentlich den quellcode auslesen?


Wenn der safe_mode (wer hat das überhaupt verbrochen...) nicht an ist kannst du das ganz einfach mit $inhalt = file_get_contents('url'zwinkern; Du kannst auch ganz einfach Parameter per GET anhängen, als URL ist also auch etwas ala www.domain.de/pfad/script.php?variable=wert möglich - wie gesagt wenn der erlende safe_mode nicht an ist.
Mit safe_mode musst du wohl per Hand eine Verbindung öffnen usw - also der ganze Sockets Kram.

ich habe auch gemeint, dass ich mal gelesen habe, dass man den Google Translator nicht auf diese art und weise benützen kann. Aber Leo kann man?


Das weiß ich nicht; aber es kommt gewissermaßen auch auf die Menge der Abfragen an. Wenn du dir die Zugriffszahlen von google anschaust, kannst du dir ja leicht denken ab welchen Requests es überhaupt auffallen würde zwinkern

Michael

user-303
20.04.2006 09:09

ich wiedersprech dir nicht gerne michael, aber dies hat nichts mit dem save_mode zu tun, sondern ob das 'open url wrapper' aktiviert ist.

in der php.ini: allow_url_fopen

Avatar user-253
20.04.2006 09:12

Ups, dann meinte ich dies. Ich hätte wenn ich mir unsicher bin statt safe_mode die-leidige-einstellung-dass-keine-urls-geöffnet-werden-können schreiben sollen zwinkern

user-344
21.04.2006 09:04

soo, ich hab das mal probiert. und ich komm soweit, dass ich woertbuch.info mit file_gets_content(); auslesen kann. Jedoch gibt dieses Dictionary immer mehrere Antworten zurück, was das ganze Unterfangen noch erschwert. Daher wolllte ich doch mal probieren Google auszulesen.

Das Forumular von Google arbeitet mit POST... wie kann ich meine Daten jetzt an das Formular schicken? Irgendwie steh ich da gerade auf dem Schlauch...

Hier ist das Formular: http://www.google.ch/language_tools?hl=de
Hier geht es hin, also eigentlich action=: http://translate.google.com/translate_t

Das Textfeld von Google heisst "text"...

Vielen user-158k für die Hilfe,
gruss
web4

Avatar user-253
21.04.2006 09:23

Du kannst es auch per GET machen, du musst nur auch die Sprache angeben

http://translate.google.com/translate_t?text=wasdumagst&langpair=de|en

user-344
21.04.2006 11:12

ah das ist ja praktischlächeln vielen dank! ich werde mich jetzt gleich mal mit dem parsen beschäftigen... bisher ist mir noch unklar wie ich zur stelle gehen kann wo mein begriff steht... also ich weiss, dass dort wo "<textarea name=text" steht, danach mein begriff folgt... aber wie komme ich dorthin?
gruss
web4

Avatar user-317
21.04.2006 11:25

RegEx (http://regenechsen.de) und die preg_* Funktionen.
Aber ich würde dir trotzdem von der ganzen Geschichte abraten und eine eigene Datenbank aufsetzen, zu mal Google nicht wirklich toll übersetzt manchmal :/

user-344
21.04.2006 12:26

ou weia... regex ist nichts für mich^^ nach einer stunde googlen, hab ich diese zeichen immer noch nicht raus...

auf jeden fall:

preg_match_all('%readonly>(.*?)<\/textarea>%', $code, $ausgabe);
echo $ausgabe[0];


der regex soll nach readonly>GESUCHTERBEGRIFF</textarea> den gesuchten Begriff ausgeben.

soweit bin ich. jedoch gibt er nur "Array" aus... ich habe das gefühl mein Regex stimmt nicht...

hat jemand von euch eine idee?
gruss
web4

Avatar user-253
21.04.2006 12:33

<?php

$string = file_get_contents('http://translate.google.com/translate_t?text=vater&langpair=de|en'zwinkern;
if(preg_match_all('/<textarea name=q rows=5 cols=45 wrap=PHYSICAL dir=ltr>(.*?)<\/textarea>/',$string,$result)) {
print 'Übersetzung: '.$result[1][0];
} else {
print 'kein Treffer';
}

?>

Avatar user-317
21.04.2006 12:35

Mach doch mal
<?php
echo '<pre>';
print_r ($ausgabe);
echo '</pre>';
?>


Außerdem hättest du gar nicht googeln brauchen, ich hab dir doch schon die perfekte Seite gelieftert frech Eventuell auch damit arbeiten : http://pcre.nophia.de/intro/index.php

Edit : Da war jemand schneller :/

user-344
21.04.2006 12:44

vielen dank euch beiden!

@michael
perfekt! dieses kleine skript hätte mir beinahe die ersten grauen haare beschafft! im nachhinein ist es eigentlich einfach, aber eben...

eine frage habe ich noch... warum heisst es:
print 'Übersetzung: '.$result[1][0];


wieso muss man das Resultat mit [1][0] ausgeben? also mit zwei arrays oder?

@sven
ich habe selbstverständlich deine links gebraucht! aber ich suchte noch mehr praktische beispiele... aber vielen dank für die links und tipps.

nochmals danke!
gruss
benjamin