Schneemann
Mitglied
Anfänger
Dabei seit: 28.04.2006
Herkunft: keine Angabe
Posts: 89
Diese Funktion dient zur Übersetzung mittels Babelfish von einzelnen Texten.
PHP
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
<?php
function translate ( $text , $l2l ) {
if ( substr_count ( $text , " " )+ 1 > 180 ) return "Only text blocks with less then 180 words are allowed." ;
$host = "babelfish.altavista.com" ;
$data_to_send = "doit=done&intl=1&tt=urltext&trtext= $text &lp= $l2l &btnTrText=Translate" ;
$fp = fsockopen ( $host , 80 );
fputs ( $fp , "POST /tr HTTP/1.1\r\n" );
fputs ( $fp , "Host: $host \r\n" );
fputs ( $fp , "Referer: http://babelfish.altavista.com/tr\r\n" );
fputs ( $fp , "Content-type: application/x-www-form-urlencoded\r\n" );
fputs ( $fp , "Content-length: " . strlen ( $data_to_send ). "\r\n" );
fputs ( $fp , "Connection: close\r\n\r\n" );
fputs ( $fp , $data_to_send );
$html = "" ;
while(! feof ( $fp )) $html .= fgets ( $fp , 128 );
$p1 = strpos ( $html , "<td bgcolor=white class=s><div style=padding:10px;>" )+ 51 ;
if (! $p1 ) return "Could not translate." ;
$p2 = strpos ( $html , "</div></td>" , $p1 );
if (! $p2 ) return "Could not translate." ;
return substr ( $html , $p1 , $p2 - $p1 );
}
?>
Aufruf:
PHP
1:
2:
3:
4:
<?php
translate ( "Some text." , "en_de" );
?>
Es werden natürlich nur alle Übersetzung unterstützt die auch von Babelfish unterstützt werden.
Post wurde schon 4x editiert, das letzte mal am 15.03.2007 um 16:36 von Schneemann
02.11.2006, 19:09
Profil |
PM |
E-Mail
Schneemann
Mitglied
Anfänger
Dabei seit: 28.04.2006
Herkunft: keine Angabe
Posts: 89
Hi,
Ihr hättet mir gleich sagen können, dass die Funktion str_count fehlt. substr_count ist das gleiche, hab es grad abgeändert. Hoffe, dass es jetzt geht.
15.03.2007, 16:35
Profil |
PM |
E-Mail
Gast
Das Script geht leider nicht mehr. Vermutlich hat Yahoo was daran geändert. Ich versuche es mal zum laufen zu bekommen oder hat jemand ein neues Script?
16.01.2012, 05:39