2011-12-22 2 views
-2

Я использовал API Google для получения адреса из данных GPS-координат. Но этот адресный язык, который я получил, не подходит для меня.API Google Translate - PHP

Так что я использовал также Google API для перевода:

$from = 'en'; 
$to = 'tr'; 

echo "adress : " . "</br>".translate($from,$to,$address)."</br>"; 

function translate($from_lan, $to_lan, $text){ 

    $data = file_get_contents ("http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" . urlencode($text) . "&langpair=" . $from_lan . "%7C" . $to_lan); 

    $data = json_decode ($data); 
    if ($data->responseStatus == 200) 
    { 
     $data = $data->responseData->translatedText; 
    } 

    return $translated_text; 
} 

Но этот код не работает! Следующая ошибка произошла:

Примечание: Попытка получить свойство не-объекта в C: \ WAMP \ WWW \ getAddress.php

($ данных = $ данных-> responseData-> translatedText;)

Что делать, чтобы решить эту проблему?

+0

Что-то не так с ответом json ... 'json_decode' не работает. dump '$ data' и посмотреть, как он выглядит. – prodigitalson

+3

Разве они не отключили бесплатный API некоторое время назад? –

+0

@ Пекка - Не знаю. – iremce

ответ

3

Я думаю, что API в вопросе is no longer publicly available:

Важно: Google Translate API v2 теперь доступен как только платные услуги, а также количество запросов ваше приложение может сделать в день ограничено. По состоянию на 1 декабря 2011 года API Google Translate v1 больше не доступен; он был официально устарел 26 мая 2011 года. Эти решения были приняты в связи с существенным экономическим бременем, вызванным широким злоупотреблением. Для перевода на веб-сайт мы рекомендуем использовать гаджет Google Translator.

+0

Я действительно не ожидал этого от Google. Они могут просто ограничить запросы. – Revenant

+0

Правда. Они могли бы ограничить запросы. –

1

Перед тем, как использовать его в качестве объекта, вы забыли подтвердить его действие $data. json_decode не имеют, чтобы дать вам объект.

  • Для отладки, проверьте содержимое $data (то есть, только после того, как вы копируете ответ перевода в него);

  • Для получения более полной информации проверьте результат json_decode.

+0

Можете ли вы объяснить более ясно? – iremce

+2

@iremce: Я сказал все, что собираюсь; проверьте данные, полученные с сервера, в качестве следующего шага отладки. Также, возможно, перечитайте страницу руководства для 'json_decode'. –

Смежные вопросы