autohotkey - 自动翻译
问题描述
我对这一切真的很陌生,我正在尝试制作一个自动热键进行翻译。我挖了一段时间,寻找只会让我更加困惑的例子,即使代码看起来很简单,我也没有理解其中的一半。
所以,我想做的是:选择一个段落并用它的翻译自动替换它。
我希望它是像 CTRJ + C、翻译、CTRL + V 这样简单的东西,但我找不到去谷歌翻译或类似东西的命令,它不在自动热键帮助文件上,所以我猜我没有图书馆?
我无能为力,请帮忙。
解决方案
你来对地方了。确定检查 AutoHotKey。
首先,如何手工操作?这些是ahk的步骤。因此,假设您选择了一段文本。您将点击 ahk 快捷方式,该快捷方式将:
- 首先 ahk 找出它所在的窗口(使用
WinGetActiveTitle
),然后发送击键 Ctrl+c 来复制选择(“send, ^c
”和“Clipwait
”),然后 - ahk 可以访问包含文本的剪贴板,执行字符串操作或正则表达式以将所有空格替换为 html 转义序列 %20(例如,
transtext := StrReplace(Clipboard, " ", "%20")
)和 - 构建一个 URL 来进行谷歌翻译,类似于(其中sl是源语言,tl是翻译语言,而text是您要翻译的内容):
transurl := "https://translate.google.com/#view=home&op=translate&sl=en&tl=es&text=" . transtext
- AHK 运行该 url 并打开一个显示结果的浏览器窗口 (
run % transurl
)。 - 这部分很烂。现在,您需要
click
在某个位置使用鼠标(或者您可能会找到一个controlsend
或多个键击移动光标和选项卡等)以降落在“复制翻译”按钮上。或者您如何手动执行(尝试sleep, 8000
在按下按钮时等待) - 然后让 ahk 关闭窗口(可选,或者您在睡眠期间手动操作)和
- ahk 切换回带有原始选定段落的应用程序(
WinActivate
或自己做)和 - 发送 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
试试看,让我们知道还有什么可以帮助的。
推荐阅读
- sql-server - 如何查找子查询字符串包含主查询字符串的行?
- curl - Curl 不显示对 HTTP 请求的响应
- go - 使用反射和动态类型附加到 go lang 切片
- android - Rails 和 React Native 与 ios/android 设备之间的网络错误
- haskell - 在 Haskell 中输入两个枚举字段
- excel - Excel VBA 中的复制粘贴
- windows - CPAN“。” 未被识别为内部或外部命令 - Windows 10
- sql-server - 计算算术字符串产生算术溢出错误
- c# - Unity - DontDestroyOnLoad() 还是公共静态变量?
- node.js - DiscordJS/MongoDB 如何让机器人正确更新值