在上一篇博文中,我分享了完整的调用百度API进行翻译的实例,我想尝试用不同的API来做翻译,就注册了彩云小译的API。结果发现我水平不够直接写ahk脚本调用,但是官方提供了很好的python实例,我把python实例调通以后,就采用ahk调用python的方式来使用彩云小译,速度也还可以。这里面需要注意的是,一、python脚本提前设置打开方式,在属性->打开方式里面设置就好了。二、设置Hide方式运行,这样不会显示运行界面,非常的快。
我需要在两台电脑运行同一个脚本,因此,我对py脚本路进行了识别,大家根据自己的需要进行调整。
;按住右边alt+鼠标左键使用彩云翻译api
~>!LButton:: ;按下alt+左键划词,然后翻译
Clipboard:=
KeyWait, Lbutton, up
MouseGetPos, X, Y
send,^c
ClipWait, , 0
;运行等待,直到程序结束,这个速度也非常快
pathtext=%A_ScriptDir%
PanStr:= SubStr(pathtext, 1 , 1)
If (PanStr="F"){
scriptspath:="F:\BaiduNetdiskWorkspace\自动化办公\additional_scripts\caiyuntrans.py"
}
Else {
scriptspath:="D:\BaiduNetdiskWorkspace\自动化办公\additional_scripts\caiyuntrans.py"
}
RunWait, %scriptspath%,,Hide,
; Sleep, 1000
text= %Clipboard%
; MsgBox, %text%
;单行宽度
If (StrLen(text)>=70){
i := 1
Loop, % StrLen(text)/70+1{
text1 .= SubStr(text, i, 70)
text1 .= "`n"
i += 70
}
}
Else text1 := text
MouseGetPos,x,y ;获得鼠标位置
tooltip,%text1%,%x%,%y%,1
Clipboard:=text1 ;复制到剪切板
SetTimer, RemoveToolTip, -5000 ;工具条5秒后自动取消
Return
python脚本,这个脚本官方文件里面也有,这个是我改动后的。
import requests
import json
import pyperclip
url = "http://api.interpreter.caiyunai.com/v1/translator"
token = "设置为自己的token"
payload = {
"source" : ["Lingocloud is the best translation service.",
"ColorfulClouds Weather is the best weather service."],
"trans_type" : "en2zh",
"request_id" : "demo",
}
payload["source"]=pyperclip.paste()
headers = {
'content-type': "application/json",
'x-authorization': "token " + token,
}
# print(json.dumps(payload))
response = requests.request("POST", url, data=json.dumps(payload), headers=headers)
pyperclip.copy(json.loads(response.text)['target'])