Получить страницы, переведенные Google? (PHP)
У меня есть куча больших текстовых файлов (прохождение игры), которые мне нужно перевести с английского на французский. Моим первым инстинктом было разместить их на сервере и использовать PHP-скрипт для автоматизации процесса перевода, выполнив file_get_contents() и некоторые манипуляции с URL-адресами для получения переведенного текста. Что-то вроде:
http://translate.google.com/translate?hl=fr&sl=en&u=http://mysite.com/faq.txt
Я обнаружил, что это создает две проблемы: 1) есть кадры 2) рамка src
значения являются относительными (т.е. src="/translate_c?...."), поэтому ничего не загружается.
Есть ли какой-нибудь способ получить страницы, переведенные через Google на PHP (без использования их AJAX API, так как он здесь действительно не подходит)?
2 ответа
Используйте cRL, чтобы получить получившуюся страницу, а затем проанализировать ее.
Вместо использования обычного URL-адреса перевода, в котором есть фреймы, используйте src фрейма:
http://translate.googleusercontent.com/translate_c?hl=<TARGET LANGUAGE>&sl=<SOURCE LANGUAGE>&tl=af&u=http://<URL TO TRANSALTE>&rurl=translate.google.com&twu=1&usg=ALkJrhhxPIf2COh7LOgXGl4jZdEBNutZAg
Например, чтобы перевести страницу http://chaimchaikin.za.net/ с английского на африкаанс:
http://translate.googleusercontent.com/translate_c?hl=en&sl=en&tl=af&u=http://chaimchaikin.za.net/&rurl=translate.google.com&twu=1&usg=ALkJrhhxPIf2COh7LOgXGl4jZdEBNutZAg
Это откроет только "безрамочную" страницу перевода.
Возможно, вы захотите изучить и проверить вокруг, чтобы найти коды для требуемого языка. Также имейте в виду, что Google может добавлять скрипты к переводу (например, показывать оригинальный текст при наведении курсора).
РЕДАКТИРОВАТЬ: При проверке кода кажется, что между переводом есть много javascript. Возможно, вам нужно найти способ избавиться от него.
РЕДАКТИРОВАТЬ: Дальнейшее изучение показывает, что конечный бит "usg=ALkJr...", кажется, меняется каждый раз. Может быть, сначала запустите запрос на обычной странице Google Translate (например, http://translate.google.com/translate?hl=fr&sl=en&u=http://mysite.com/faq.txt), чем найдите и проанализируйте "usg=.." part и используйте его для следующего запроса на странице" без рамки "( http://translate.googleusercontent.com/translate_c?..).