Automati c перевод - PullRequest
       12

Automati c перевод

0 голосов
/ 29 февраля 2020

Я действительно новичок во всем этом, и я пытался сделать AutoHock для перевода. Некоторое время я копался в поисках примеров, которые только смущали меня, даже если код выглядел просто, я не понимал и половины этого.

Итак, я пытаюсь сделать следующее: выбрать параграф и замените его автоматически переводом.

Я обручил его так просто, как CTRJ + C, Translate, CTRL + V, но я не могу найти команду для go, чтобы гугл переводчик или аналогичный, его нет в файле справки autohotkey, поэтому я предполагаю, что у меня нет библиотек?

Я в своем уме, пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

OKOK, прежде всего, спасибо всем, скрипт теперь работает отлично. Теперь я могу копировать, переводить и вставлять любой текст. Осталось всего несколько вопросов. 1) Я не уверен, что понял, что должен делать шаг № 5. что бы это ни было, это работает, поэтому я не трогаю это. 2) есть ли способ сбросить google.translate, чтобы он каждый раз не открывал новое окно? это может сэкономить много времени. 3) у этого нет шансов, но я все равно спрашиваю. Есть ли способ вообще не открывать гугл chrome? потому что я знаю, что вы можете переводить из Excel автоматически. (я знаю, что, если это возможно, будет очень сложно)

Это код, которым я закончил:

^a::
clipboard := ""
sendinput, ^c
ClipWait [,,Waitforanydata]
transtext := StrReplace(Clipboard, " ", "%20")
transurl := "https://translate.google.com/#view=home&op=translate&sl=en&tl=es&text=" . 
transtext
run % transurl
Sleep, 4000
SendEvent, {tab 9}
SendEvent, {enter}
Winactivate, NAME.pdf - PROGRAM
sendinput, ^v
0 голосов
/ 01 марта 2020

Вы пришли в нужное место. Проверьте AutoHotKey наверняка.

Во-первых, как это сделать вручную? Это шаги для ахк. Итак, допустим, у вас выделен абзац текста. Вы нажмете ярлык ахк, и этот ярлык будет:

  1. сначала ахк выясняет, в каком окне оно находится (используя WinGetActiveTitle), а затем отправляет нажатия клавиш Ctrl + c, чтобы скопировать выбор ("send, ^c "и" Clipwait "), затем
  2. ahk может получить доступ к буферу обмена, содержащему текст, выполнить строковые манипуляции или регулярное выражение, чтобы заменить все пробелы на escape-последовательность html% 20 (например, transtext := StrReplace(Clipboard, " ", "%20")) и
  3. составляют URL для выполнения Переводчика Google, что-то вроде (где sl - исходный язык, tl - язык перевода и текст - это то, что вы хотите перевести): transurl := "https://translate.google.com/#view=home&op=translate&sl=en&tl=es&text=" . transtext
  4. AHK запускает этот URL и открывает окно браузера, в котором отображается результат (run % transurl).
  5. Эта часть отстой. Теперь вам нужно использовать мышь click в определенном месте (или, может быть, вы найдете controlsend или комбинацию клавиш, перемещающих курсор с помощью вкладок и тому подобное), чтобы попасть на кнопку «Копировать перевод». Или как вы делаете это вручную (попробуйте sleep, 8000 подождать, пока вы нажмете кнопку)
  6. , затем ахк закройте окно (опционально, или вы просто делаете это вручную во время сна) и
  7. ahk переключается обратно на приложение с исходным выбранным абзацем (WinActivate или сделайте это самостоятельно) и
  8. отправляет Ctrl + V, чтобы вставить переведенный текст поверх оригинала (send ^v).

Стартовый пакет кода AHK (отредактировано в соответствии с комментариями пользователя):

WinGetActiveTitle, activewin
Clipboard =
SendInput, ^c
ClipWait
transtext := StrReplace(Clipboard, " ", "%20")
transurl := "https://translate.google.com/#view=home&op=translate&sl=en&tl=es&text=" . transtext
Run, % transurl
Sleep, 6000 ; adjust to taste.
SendEvent, {tab 10} ; adjust to taste.
Sleep 1000
SendInput, {enter}
Sleep, 1000
SendInput, ^{F4}
WinActivate, activewin
sleep, 1000
SendInput, ^v

Попробуйте и дайте нам знать, как еще помочь.

...