【问题标题】:Automatic translation自动翻译
【发布时间】:2020-02-29 19:17:33
【问题描述】:

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

所以,我要做的是:选择一个段落并自动将其替换为翻译。

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

我无能为力,请帮忙。

【问题讨论】:

  • 你挖得怎么样?谷歌搜索“自动热键翻译”会给你autohotkey.com/boards/viewtopic.php?f=6&t=63835 作为第一个结果,只需复制粘贴,你就有一个可以翻译的功能
  • 是的,我看到了,接下来的 4 或 5 个,它们都是不同的,根本没有评论,所以我什么都学不到。此外,这是第一次尝试更大的东西,我需要理解它,这样我才能改进它。无论如何谢谢。

标签: autohotkey google-translate


【解决方案1】:

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

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

  1. 首先 ahk 找出它所在的窗口(使用WinGetActiveTitle),然后发送按键 Ctrl+c 来复制选择(“send, ^c”和“Clipwait”),然后
  2. ahk 可以访问包含文本的剪贴板,执行字符串操作或正则表达式以将所有空格替换为 html 转义序列 %20(例如,transtext := StrReplace(Clipboard, " ", "%20"))和
  3. 构建一个 URL 来进行 Google 翻译,例如(其中 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 代码入门包(按用户 cmets 编辑):

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

尝试一下,让我们知道还有什么帮助。

【讨论】:

  • 会推荐一些翻译 api。谷歌也提供了一个。将提供创建一次性解决方案的能力。
【解决方案2】:

好的,首先,谢谢大家,脚本现在运行良好。我现在可以复制、翻译和粘贴任何文本。只有几个问题挥之不去。 1)我不确定我得到第 5 步应该做什么。不管它是什么,它都有效,所以我不碰它。 2)有没有办法重置 google.translate 所以每次都打开一个新窗口?这可以节省很多时间。 3)这个没有机会,但我还是问。有没有办法根本不打开谷歌浏览器?因为我知道你可以自动从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

【讨论】:

    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    相关资源
    最近更新 更多