JSON. Такой вариант решения реализуется программно, и не требует ввода API ключа проекта. Запрос принимает 3 необходимых параметра:
- исходный текст (q);
- версия протокола (v) ;
- исходная и конечная языка (langpair), разделенные символом "|".
Синтаксис запроса имеет следующий вид
php https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=Hello,%20world!&langpair=en%7ru
Кроме необходимы параметров запрос может принимать и второстепенные:
- обратный аргумент (callback);
- дополнительный аргумент для обратного(context);
- формат результата (format);
- ключ для определения сайта (key);
- ІР-адрес конечого пользователя, от имени которого делается запрос (userip).
После использования запроса, мы имеем такую структуру результата:
php * error? Присутствует, если произошла ошибка в переводе текста: * code HTTP код ошибки . * message Описание ошибки. * translation Переведенный текст. * detectedSourceLanguage? Если язык источника был определен автоматически, то он будет возвращен здесь.
Програмно, этот способ можна реализировать на РНР так:
php /** * Translate text with Google API service */ function _google_translate($text, $lang_from='en', $lang_to='ru') { $url_prefix = 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0'; $text = urlencode($text); $lang_from = urlencode($lang_from); $lang_to = urlencode($lang_to); $langpair = $lang_from . '|' . $lang_to; $service_url = $url_prefix . '&q=' . $text . '&langpair=' . $langpair; $translated_text = @file_get_contents($service_url); $json = json_decode($translated_text, true); if ($json['responseStatus'] != 200){ return false; } return $json['responseData']['translatedText']; }
На мой взгляд этот вариант несколько проще и практичнее, ведь в нем достаточно легко контролировать и устранять имеющиеся ошибки, делать Автоперевод текста без участия редактора, там отсутствует необходимость обязательной регистрации сайта на Google API, и есть набор дополнительных параметров запроса, которые могут гарантировать безопасность его выполнения.