runany翻译插件分享

runany是一款使用ahk写的强大工具

个人写了一些ra的插件在社区上分享

这次谷歌翻译炸了,所以弄了个有道接口的翻译,修改自随机大佬的翻译文章,改造成了ra插件

runany翻译插件分享

runany翻译插件分享

 

源码分享

  1. ;************************
    ;* 【ObjReg插件脚本 1】
    ;************************
    global RunAny_Plugins_Version:="1.0.0"
    #NoTrayIcon             ;~不显示托盘图标
    #Persistent             ;~让脚本持久运行
    #SingleInstance,Force   ;~运行替换旧实例
    ;********************************************************************************
    ; Finally, after years of hard work, there is a new major release of Vim. Besides many additions and fixes, the main new item is the support for Vim9 script. You can go straight to the Download page and try it out. Or read the announcement. (Bram Moolenaar)
    
    #Include %A_ScriptDir%\RunAny_ObjReg.ahk
    
    class RunAnyObj {
    	yd(getZz){
    	MouseGetPos,x,y
    text = % youdao_translation(remove_punctuation(getZz))
    ;单行宽度
    If (StrLen(text)>=70){
        i := 1
        Loop, % StrLen(text)/70+1{
            text1 .= SubStr(text, i, 70)
            text1 .= "`n"
            i += 70
        }
    }
        Else text1 := text
    tooltip,%text1%,%x%,%y%,1
    Clipboard:=text1
    SetTimer,rebt,2000
    Return
    
    	}
    }
    rebt:
    tooltip
    return
    ;翻译主函数
    youdao_translation(text){
        Url=http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null
        postdata=type=AUTO&i=%text%&doctype=json&xmlVersion=1.4&keyfrom=fanyi.web&ue=UTF-8&typoResult=true&flag=false
        youdaoreText:= byteToStr(WinHttp(Url,"POST",postdata),"utf-8")
        NeedleRegEx=O)tgt":"(.*?)"
        FoundPos:=RegExMatch(youdaoreText,NeedleRegEx,OutMatch)
        youdaoValue:=(ErrorLevel) ? :OutMatch.Value(1)
        NeedleRegEx=O)entries":["","(.*?)"
        FoundPos:=RegExMatch(youdaoreText,NeedleRegEx,OutMatch)
        youdaoValue.=(! ErrorLevel and OutMatch.Value(1)="") ? :
        Return youdaoValue
    }
    ;发送接收数据
    WinHttp(Httpurl,Httpmode="GET",Httppostdata=""){
        StringUpper Httpmode,Httpmode
        ;~ XMLHTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1")
        XMLHTTP := ComObjCreate("Microsoft.XMLHTTP")
        XMLHTTP.open(Httpmode,Httpurl,false)
        XMLHTTP.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0")
        if Httpmode=POST
        {
            XMLHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
            XMLHTTP.send(Httppostdata)
        }else
            XMLHTTP.send()
        ;~ return XMLHTTP.responseText
        return XMLHTTP.ResponseBody
    }
     
    ;将原始数据流以指定的编码的形式读出
    byteToStr(body, charset){
        Stream := ComObjCreate("Adodb.Stream")
        Stream.Type := 1
        Stream.Mode := 3
        Stream.Open()
        Stream.Write(body)
        Stream.Position := 0
        Stream.Type := 2
        Stream.Charset := charset
        str := Stream.ReadText()
        Stream.Close()
        return str
    }
    ;去除文本中的标点
    remove_punctuation(text){
        punctuation := [",", ".", "!", "`n", "?", """", ";"]
        For k, v in punctuation{
            text1 := StrReplace(text, v, " ")
            text := text1
        }
        Return text
    }
    

给TA捐赠
共{{data.count}}人
人已捐赠
其他

锁定屏幕时接收用户输入的快捷键热键并执行自定义AutoHotkey脚本-2022年10月8日

2022-10-8 13:41:10

其他

Autohotkey自定义快捷键修改中英文标点符号

2022-10-9 8:54:20

3 条回复 A文章作者 M管理员
  1. VVXahk

    哇,好厉害,感谢分享,我去试一下

  2. 星星之岛

    有用 顶你

个人中心
购物车
优惠劵
有新私信 私信列表
搜索