2010-04-26 6 views
0

У меня есть куча больших файлов txt (пошаговые руководства), которые мне нужны для перевода с английского на французский. Мой первый инстинкт состоял в том, чтобы разместить их на сервере и использовать скрипт PHP для автоматизации процесса перевода, выполнив file_get_contents() и некоторые манипуляции с URL, чтобы получить переведенный текст. Что-то вроде:Получить страницы, переведенные Google? (PHP)

http://translate.google.com/translate?hl=fr&sl=en&u=http://mysite.com/faq.txt

Я нашел, что это создает две проблемы: 1) Есть кадры 2) кадр src значения относительны (т.е. SRC =) так что ничего нагрузки "/ translate_c ....?".

Есть ли способ получить страницы, переведенные через Google на PHP (без использования их API AJAX, поскольку он здесь не подходит)?

ответ

2

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

+0

Спасибо, но не будет ли IFrames проблемой? – mathon12

+0

Используйте cURL, чтобы получить URL-адрес, отправленный Chaim выше, и вы должны быть установлены. Это также должно избегать осложнений с Javascript, поскольку он будет захватывать только HTML. –

+0

Я собираюсь с cURL, спасибо! – mathon12

1

Вместо использования регулярного перевода URL, который имеет кадры, использовать ГКЗ кадра:

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 может добавлять сценарии к переводу (например, для отображения исходного текста при наведении).

EDIT: При проверке кода появляется, что есть много javascript между переводом. Возможно, вам придется найти способ избавиться от него.

EDIT: Дальнейшая проверка показывает, что конечный бит «usg = ALkJr ...», кажется, меняется каждый раз. Возможно, сначала запустите запрос на обычной странице перевода Google (например, http://translate.google.com/translate?hl=fr&sl=en&u=http://mysite.com/faq.txt), чем найдите и проанализируйте часть «usg = ..» и используйте ее для следующего запроса на странице «без рамки» (http://translate.googleusercontent.com/translate_c?...).

+0

Привет, спасибо, я уже пробовал это сделать, но он кажется несовместимым с кадрами (они, кажется, все еще там ...). Я думаю, что многое зависит от этого ключа в конце (usg). Спасибо, я буду играть с этими идеями. – mathon12