Получить страницы, переведенные 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?..).

Другие вопросы по тегам