首页 > 解决方案 > 自动翻译

问题描述

我对这一切真的很陌生,我正在尝试制作一个自动热键进行翻译。我挖了一段时间,寻找只会让我更加困惑的例子,即使代码看起来很简单,我也没有理解其中的一半。

所以,我想做的是:选择一个段落并用它的翻译自动替换它。

我希望它是像 CTRJ + C、翻译、CTRL + V 这样简单的东西,但我找不到去谷歌翻译或类似东西的命令,它不在自动热键帮助文件上,所以我猜我没有图书馆?

我无能为力,请帮忙。

标签: autohotkeygoogle-translate

解决方案


你来对地方了。确定检查 AutoHotKey。

首先,如何手工操作?这些是ahk的步骤。因此,假设您选择了一段文本。您将点击 ahk 快捷方式,该快捷方式将:

  1. 首先 ahk 找出它所在的窗口(使用WinGetActiveTitle),然后发送击键 Ctrl+c 来复制选择(“ send, ^c”和“ Clipwait”),然后
  2. ahk 可以访问包含文本的剪贴板,执行字符串操作或正则表达式以将所有空格替换为 html 转义序列 %20(例如,transtext := StrReplace(Clipboard, " ", "%20"))和
  3. 构建一个 URL 来进行谷歌翻译,类似于(其中sl是源语言,tl是翻译语言,而text是您要翻译的内容):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. 然后让 ahk 关闭窗口(可选,或者您在睡眠期间手动操作)和
  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

试试看,让我们知道还有什么可以帮助的。


推荐阅读