Работа с translate.google.com

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
forfrends
Вымогатель припоя
Сообщения: 546
Зарегистрирован: Вс дек 30, 2012 00:32:06
Откуда: Николаев / Украина
Контактная информация:

Работа с translate.google.com

Сообщение forfrends »

Всем привет!
Мне часто приходится переводить части текста с английского на русский, пользуюсь Гугл переводчиком: http://translate.google.com. Решил этот вопрос автоматизаровать. Я не особо разбираюсь в программировании. Все что нужно пишу на очень простом языке Autoit. Поискав, даже решение готовое нашлось:
Спойлер

Код: Выделить всё

#include "Encoding.au3"

$sFileRead=@ScriptDir&'\1.txt'
$sFileWrite=@ScriptDir&'\2.txt'

$hFile = FileOpen($sFileWrite, 2)
FileWrite($hFile,_Translate(FileRead($sFileRead),'en'))
FileClose($hFile)

Func _Translate($sText,$sLang)
$sText = StringReplace($sText, @CRLF, " ")
$sResult = BinaryToString(InetRead("http://translate.google.com/translate_t?text=" & $sText & "&hl=ru&langpair=auto|" & $sLang & "&eotf=0&tbb=1"))

$sResult = StringRegExpReplace( _
$sResult, _
	'(?si).*<span (?:title=".*?" onmouseover=".*?" onmouseout=".*?|id=result_box class=".*?")>(.*?)</span>.*', _
	'\1')

If _Encoding_IsUTF8Format($sResult) Then
	$sResult = _Encoding_UTF8ToANSI($sResult)
EndIf

Return $sResult
EndFunc
В коде используется еще одна библиотека, прикрепляю ее.
Но проблема в том, что сервис Гугл переводчика обновился, и этот код перестал работать. Загвоздка заключается в том, что язык Autoit работает с интернетом используя движок от Интернет Експрорера, а обновление Гугл Переводчика привело к тому что при загрузке страницы не загружается скрипт перевода, и, соответственно, выцепить перевод нельзя. Выглядит это так: если открыть в ИЕ гугл переводчик то он откроется, и даже текст переведет. Но если сохранить страницу через Cntrl+S то страница сохраняется без перевода. Это и мешает работе кода. В других браузерах данной проблемы нет, но Autoit не работает с другими браузерами. Точнее это можно организовать через "костыли", которые перехватывают работу мышки, клавиатуры.... Что-то мне не хочется этого делать, так как от этого часто проблемы бывают...
Полностью моя задача выглядит так: Есть текстовый файл, в нем нужно выбирать определенные строки, переводить, и вставлять обратно. Я уперся именно в неработоспособность перевода :(
Вопрос в том, как можно это исправить? Может у вас есть идеи по этому поводу? На разных форумах по Autoit задавал этот вопрос, но уже несколько дней прошло, и никто не ответил...
Или посоветуйте простой язык, на котором можно было бы организовать то, что мне нужно.
Заранее спасибо за помощь!
Вложения
Encoding UDF.zip
(10.04 КБ) 296 скачиваний
Сделать своими руками всегда интересней чем просто купить и пользоваться
Реклама
Аватара пользователя
radteh
Друг Кота
Сообщения: 3087
Зарегистрирован: Пт мар 09, 2007 15:01:52
Откуда: Биробиджан

Re: Работа с translate.google.com

Сообщение radteh »

Может уже не актуально, полгода всё таки прошло. Но могу предложить использовать их API, а не парсить страницу. И у гугла и у яндекса есть свои API.
Реклама
Ответить

Вернуться в «Интеграция с ПК»