Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить

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

Чт ноя 28, 2019 00:03:26

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

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

Чт фев 06, 2020 06:00:16

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