Нет ничего проще, чем использовать переводчик на своем сайте. Например, как я уже упоминал, для автоматического перевода названий стран в своей Google Analytics статистике.
Код простого класса для работы с Google Translate API под катом.
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 | class Google_Translate_API { function translate($text, $from = '', $to = 'en') { $url = 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q='.rawurlencode($text).'&langpair='.rawurlencode($from.'|'.$to); $response = file_get_contents( $url, null, stream_context_create( array( 'http'=>array( 'method'=>"GET", 'header'=>"Referer: http://".$_SERVER['HTTP_HOST']."/\r\n" ) ) ) ); if (preg_match("/{\"translatedText\":\"([^\"]+)\"/i", $response, $matches)) { return self::_unescapeUTF8EscapeSeq($matches[1]); } return $text; } function _unescapeUTF8EscapeSeq($str) { return preg_replace_callback("/\\\u([0-9a-f]{4})/i", create_function('$matches', 'return html_entity_decode(\'&#x\'.$matches[1].\';\', ENT_NOQUOTES, \'UTF-8\');'), $str); } } |
Пример использования для перевода с английского на русский язык:
1 | $text = Google_Translate_API::translate($text, 'en', 'ru'); |
Первый параметр функции – текст для перевода, второй язык с которого переводить, третий – язык на который переводить.
Списки языков для перевода можно посмотреть тут. Кстати, для авто определения языка с которого переводить, можете использовать пустые кавычки.
1 | $text = Google_Translate_API::translate($text, '', 'ru'); |
Результат возвращается в UTF-8. Если Вас, как и меня не устраивает такой расклад вещей, можно модифицировать строку 17:
17 | return iconv('UTF-8','WINDOWS-1251',self::_unescapeUTF8EscapeSeq($matches[1])); |
Также, как и результат, текст отправляемый на Google Translate API должен быть в UFT-8.
Если у вас он в CP-2151, то придется еще добавить между строчками 2 и 3:
2 | $text = iconv('WINDOWS-1251','UTF-8',$text); |
ПС: не забывайте, что для работы Google Translate API на сервере должна быть включена опция allow_url_fopen и iconv для перекодировки в windows-1251.
Метки: google, google translate, google translate api