Получить страницы, переведенные Google? (PHP) - PullRequest
0 голосов
/ 26 апреля 2010

У меня есть куча больших текстовых файлов (прохождение игры), которые мне нужно перевести с английского на французский. Моим первым инстинктом было разместить их на сервере и использовать 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 ]

2 голосов
/ 26 апреля 2010

Используйте cRL , чтобы получить получившуюся страницу, а затем проанализируйте ее.

1 голос
/ 27 апреля 2010

Вместо обычного 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 ...", кажется, меняется каждый раз. Возможно, сначала запустите запрос на обычной странице гугл-перевода (например, http://translate.google.com/translate?hl=fr&sl=en&u=http://mysite.com/faq.txt), затем найдите и проанализируйте часть «usg = ..» и используйте ее для следующего запроса на странице «без рамки» (* 1020). *

...