V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhouzm
V2EX  ›  macOS

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

  •  1
     
  •   zhouzm · 2016-10-06 11:51:17 +08:00 · 1792 次点击
    这是一个创建于 2998 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 为什么要 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
    @zhouzm 👌
    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   ·   实用小工具   ·   2131 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 01:16 · PVG 09:16 · LAX 17:16 · JFK 20:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.