Willkommen in der Webstatt Zum Webstatt Blog und Stories
web4 am 20.04.06 00: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

netcup.de Warum gibt es hier Werbung?
milahu milahu am 20.04.06 01: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.

web4 am 20.04.06 01: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 Dank!

bastey bastey am 20.04.06 10:07

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

Michael Michael am 20.04.06 10:07

Quote
Original von web4
Wie kann ich danach das ergebnis auslesen?


Genau dies meinte milahu (denke ich ;)). 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.

web4 am 20.04.06 10:43

achso ok dann hab ich das doch richtig verstanden:)
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...

Michael Michael am 20.04.06 10:47

Quote
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'); Du kannst auch ganz einfach Parameter per GET anhängen, als URL ist also auch etwas ala http://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.

Quote
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 ;)

Michael

Snake am 20.04.06 11: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

Michael Michael am 20.04.06 11: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 ;)

web4 am 21.04.06 11: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 Dank für die Hilfe,
gruss
web4

Michael Michael am 21.04.06 11: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

web4 am 21.04.06 13:12

ah das ist ja praktisch:) 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

Sven Sven am 21.04.06 13: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 :/

web4 am 21.04.06 14: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

Michael Michael am 21.04.06 14:33

<?php

$string = file_get_contents('http://translate.google.com/translate_t?text=vater&langpair=de|en');
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';
}

?>

Sven Sven am 21.04.06 14: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 :P Eventuell auch damit arbeiten : http://pcre.nophia.de/intro/index.php

Edit : Da war jemand schneller :/

web4 am 21.04.06 14: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

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt