Скрипт переводчика Google Translate

12
HA
На сайте с 10.03.2009
Offline
83
#11


<?php
function translate($text, $from, $to) {
$agent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)" ;
$header [] = "Accept: text/html;" ;
$header [] = "Accept_charset: utf-8";
$header [] = "Accept_encoding: identity";
$header [] = "Accept_language: en-us";
$header [] = "Connection: Keep-Alive";
$ch = curl_init ();
$url = 'http://translate.google.com/translate_a/t?client=t&text='.urlencode($text).'&sl='.$from.'&tl='.$to;
curl_setopt ( $ch , CURLOPT_URL , $url );
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 );
curl_setopt ( $ch , CURLOPT_VERBOSE , 1 );
curl_setopt ( $ch , CURLOPT_USERAGENT , $agent );
curl_setopt ( $ch , CURLOPT_HTTPHEADER , $header );
curl_setopt ( $ch , CURLOPT_FOLLOWLOCATION , 1 );
$tmp = curl_exec ( $ch );
curl_close ( $ch );
$tmp = substr ($tmp, 1, strlen ($tmp)-2);
$pos1=strpos($tmp,"trans\":\"")+8;
$pos2=strpos($tmp,"\"",$pos1);
$tmp=substr($tmp,$pos1,$pos2-$pos1);
return $tmp;
}

echo translate("my name is jack","en","ru");
?>

P.S. for free ;)

P.S.S. еще 2 часа назад я бы назвал это парсингом, а теперь знаю, что to parse - проводить грамматический анализ :) В соседней теме статья интересная :)

seo-dreamer's blog (http://seo-dreamer.ru/)
S8
На сайте с 26.09.2008
Offline
45
#12

hEckA, А если допустим я хочу перевести мегабайт 100 текста? :)

HA
На сайте с 10.03.2009
Offline
83
#13
Smile8979:
hEckA, А если допустим я хочу перевести мегабайт 100 текста? :)

ТС попросил переделать готовый скрипт, и его видимо устраивает. А со 100 мб текста будет проблема :)

Madness_Lvov
На сайте с 22.05.2008
Offline
54
#14

hEckA, скрипт пашет, спасибо

Smile8979, А если допустим я хочу перевести мегабайт 100 текста?

надо разбивать источник на части, передавать в скрипт по частям, после выхода из скрипта клеить

S8
На сайте с 26.09.2008
Offline
45
#15
Madness_Lvov:
hEckA, скрипт пашет, спасибо
Цитата:
Smile8979, А если допустим я хочу перевести мегабайт 100 текста?
надо разбивать источник на части, передавать в скрипт по частям, после выхода из скрипта клеить

Это-то понятно. А благодарить нужно Валентина код его. А вообще гугл рулит.

HA
На сайте с 10.03.2009
Offline
83
#16

Скрипт не работает при переводе с русского на инглиш :(

На че у меня хватило фантазии я уже попробовал, больше не знаю че делать :(

Может с хедерами или с кодировками какие проблемы. В документации вроде ниче такого не нашел...

Smile8979:
А благодарить нужно Валентина код его.

Его код тоже не работает :( т.е. работает, но только если с инглиша переводить, а не с русского.

Есть идеи у кого че замутить? мне нужен этот скрипт, но только чтобы переводил с русского

hEckA добавил 17.01.2010 в 18:23

рабочий вариант для любого языка:


<html>
<head>
<title>translate</title>

</head>
<body>
<?php
function translate($s_text, $s_lang, $d_lang){
$s_text = iconv('cp1251', 'utf-8', $s_text);
$url = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=".urlencode($s_text)."&langpair=".urlencode($s_lang.'|'.$d_lang);

$c = curl_init();
$header [] = "Accept: text/html;" ;
$header [] = "Accept_charset: utf-8";
$header [] = "Accept_encoding: identity";
$header [] = "Accept_language: en-us";
$header [] = "Connection: Keep-Alive";
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_REFERER, "http://mediadisc.ru/");
curl_setopt($c, CURLOPT_HTTPHEADER , $header );
$b = curl_exec($c);
curl_close($c);
$json = json_decode($b, true);
if ($json['responseStatus'] != 200)return false;
return $json['responseData']['translatedText'];
}

echo translate("меня зовут Рома","ru","en");
?>
</body>
</html>
Jafar
На сайте с 04.06.2008
Offline
48
#17

Что-то тоже с русского не пашет, вернее кракозябры какие-то:(

DS
На сайте с 30.10.2007
Offline
47
#18

hEckA, ваш вариант не для больших объёмов входного текста.

Поисковый аудит сайтов (/ru/forum/283538). Продвижение сайтов в Яндексе. ICQ 239410два-8-три.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий