Всем привет!
Мне часто приходится переводить части текста с английского на русский, пользуюсь Гугл переводчиком:
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 KiB) Скачиваний: 273