Automator + Google Translate, DIY 一个方便灵活的词典/翻译工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhouzm
V2EX    macOS

Automator + Google Translate, DIY 一个方便灵活的词典/翻译工具

  •  1
     
  •   zhouzm 2016-10-06 11:51:17 +08:00 2377 次点击
    这是一个创建于 3369 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 为什么要 DIY

    mac 的三指取词功能估计是操作上最方便的字典工具了,可惜其自带的汉英词典太弱,经常是“找不到结果”。

    幸运的是苹果给词典留了词库扩展接口,在网上 google 一下,就可以找到很多网友制作好的扩展库,我自己添加的是 [柯林斯高阶英汉双解学习词典] ,增强词库后,基本上能解决我们日常生词的学习需求。

    但是毕竟是"词"典,如果碰到词组或大段的文本,或者一个拼写错误的词,系统自带词典就完全哑火了,在这种情况下能替代的软件并不多,基本上只有一个欧路,但是欧路的划词时灵时不灵,划词图标弹不出时会让人很恼火。

    在可用性方面找不到完美的 app 之后,必然走上了 diy 之路。

    • 如何 DIY

    对,没错,就是 AppleScript ,首先打开 Automator ,新建文稿,文稿类型选"服务",在左上的搜索框输入:"apple",找到"运行 AppleScript"项后双击,在右侧的编辑区,删除默认添加的代码,粘贴以下代码:

    on run {input, parameters} set output to "https://translate.google.com/#auto/zh-CN/" & urldecode(input as string) return output end run on urldecode(x) set cmd to "'require \"cgi\"; puts CGI.escape(STDIN.read.chomp)'" do shell script "echo " & quoted form of x & " | ruby -e " & cmd end urldecode 

    上述代码里 "/#auto" 表示自动检测语言,"/zh-CN/" 表示翻译为简体中文,你可以根据你自己的需求,改为"中译英"、"日译繁中"、"德译法"等等,具体的语言代码请浏览器打开 translate.google.com 选择语言后在地址栏获取。如果你缺乏科学上网手段,也可以将地址换成有道,百度等国内的在线词典。

    接下来继续搜索"菜单",找到"网站弹出式菜单"项双击,在右侧的编辑区可以修改部分设置,比如大小选择"自定",个人建议大小设为 720×480 ,位置选择"鼠标指标"。

    最后保存,实际的保存路径为 ~/Library/Services/

    • 懒人包

    https://dl.dropboxusercontent.com/u/7004117/Google%20Translate.workflow.zip

    解压到 ~/Library/Services/

    • 如何使用

    任何 app 内,只要可选择文本,即可在"服务"菜单下(或右键菜单"服务"下)找到该 workflow ,名称为上面你保存的文件名,击点即弹出翻译结果。可以在系统设置为该服务设置快捷键,我设置的是 alt+command+T 。

    好了,随便打开一个中文网页,选择大段文本, alt+command+T ,体验一下 google translate 神经网络加持后的水平如何吧。

    • 扩展

    使用这个方法,只要有合适的在线接口,可以打造各类查询工具,大家可以尽情脑洞。

    12 条回复    2016-10-14 11:39:31 +08:00
    GoldenLee
        1
    GoldenLee  
       2016-10-06 12:51:11 +08:00 via Android
    一会试试,顶
    joeaaa
        2
    joeaaa  
       2016-10-07 09:55:24 +08:00 via iPhone
    mark
    anguslg
        3
    anguslg  
       2016-10-07 10:40:55 +08:00
    好用。配合 BTT 设置三指点按,和之前的三指轻拍查单词配合的真好
    lonelygo
        4
    lonelygo  
       2016-10-07 13:31:26 +08:00
    @zhouzm 配合梯子+BTT 确实很爽。弹出菜单,只能点“取消”关闭,有没有更便捷的方法?
    zhouzm
        5
    zhouzm  
    OP
       2016-10-07 23:46:58 +08:00
    @lonelygo 鼠标点击弹出窗口,然后按 ESC
    lonelygo
        6
    lonelygo  
       2016-10-08 10:44:56 +08:00
    luq885
        7
    luq885  
       2016-10-08 14:46:14 +08:00
    mark
    idigital
        8
    idigital  
       2016-10-08 21:41:33 +08:00
    好赞的 automator
    frinstioAKL
        9
    frinstioAKL  
       2016-10-13 19:06:59 +08:00
    改成百度翻译,输入的单词间默认加了加号“”。怎么解决
    ![]( )
    frinstioAKL
        10
    frinstioAKL  
       2016-10-13 19:08:48 +08:00
    接上一条。尤其是下图这种,很受影响:
    ![]( )
    zhouzm
        11
    zhouzm  
    OP
       2016-10-13 21:30:32 +08:00
    @frinstioAKL
    这是由于百度翻译不处理 url 参数中的 "+" 造成的
    把 urldecode 方法改成以下就 ok 了:
    on urldecode(x)
    set cmd to "'require \"cgi\"; puts CGI.escape(STDIN.read.chomp).gsub(\"+\",\"%20\")'"
    do shell script "echo " & quoted form of x & " | ruby -e " & cmd
    end urldecode
    frinstioAKL
        12
    frinstioAKL  
       2016-10-14 11:39:31 +08:00
    @zhouzm 谢谢妈妈再也不用担心我的英语
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2561 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 04:42 PVG 12:42 LAX 20:42 JFK 23:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86