Спустя 1 месяц, 7 дней, 1 час, 4 минуты, 38 секунд (18.09.2009 - 11:09) Roman написал(а):
Цитата (kasichvadim @ 10.08.2009 - 20:51) |
Здравствуйте! Возникла необходимость перевода текстов на сайте. В нете нашел информацию о использовании Google translate API.
Вобщем есть код:
PHP | <? function translate($s_text, $s_lang, $d_lang){ $post_data['q']=$s_text; $post_data['langpair']=$s_lang."|".$d_lang; $query=http_build_query($post_data); $url = "http://[SPAN=darling]ajax[/SPAN].googleapis.com/[SPAN=darling]ajax[/SPAN]/services/language/translate?v=1.0"; $c = curl_init(); curl_setopt($c, CURLOPT_URL, $url); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_POST, 0); curl_setopt($c, CURLOPT_POSTFIELDS, $query); $b = curl_exec($c); curl_close($c); $json = json_decode($b, true); if ($json['responseStatus'] != 200)return false; return $json['responseData']['translatedText']; } |
когда пытаюсь вызвать функцию:
PHP | echo translate('Hello', 'en', 'ru'); |
то все ок. Текст нормально переводится. Но... когда пытаюсь с русского перевести на английский:
PHP | echo translate('Привет', 'ru', 'en'); |
то функция возвращает false
Видимо проблема в кириллице, которая отправляется в пост запросе.
Как выйти с этого положения?
Большое спасибо!
|
Добрый день.
<?
function translate($s_text, $s_lang, $d_lang){
$post_data['q']=$s_text;
$post_data['langpair']=$s_lang."|".$d_lang;
$query=http_build_query($post_data);
$url = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0";
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_POST, 0);
curl_setopt($c, CURLOPT_POSTFIELDS, $query);
$b = curl_exec($c);
curl_close($c);
$json = json_decode($b, true);
if ($json['responseStatus'] != 200)return false;
return $json['responseData']['translatedText'];
}
echo translate('Hello', 'en', 'ru');
?>
У меня при выполнении этого кода - возвращается Я╤А╨╕╨▓╨╡╤В
В чем может быть проблема?