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

2016-10-06 11:51:17 +08:00
 zhouzm

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

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

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

在可用性方面找不到完美的 app 之后,必然走上了 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 神经网络加持后的水平如何吧。

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

1732 次点击
所在节点    macOS
12 条回复
GoldenLee
2016-10-06 12:51:11 +08:00
一会试试,顶
joeaaa
2016-10-07 09:55:24 +08:00
mark
anguslg
2016-10-07 10:40:55 +08:00
好用。配合 BTT 设置三指点按,和之前的三指轻拍查单词配合的真好
lonelygo
2016-10-07 13:31:26 +08:00
@zhouzm 配合梯子+BTT 确实很爽。弹出菜单,只能点“取消”关闭,有没有更便捷的方法?
zhouzm
2016-10-07 23:46:58 +08:00
@lonelygo 鼠标点击弹出窗口,然后按 ESC
lonelygo
2016-10-08 10:44:56 +08:00
@zhouzm 👌
luq885
2016-10-08 14:46:14 +08:00
mark
idigital
2016-10-08 21:41:33 +08:00
好赞的 automator 👍
frinstioAKL
2016-10-13 19:06:59 +08:00
改成百度翻译,输入的单词间默认加了加号“➕”。怎么解决
![]( )
frinstioAKL
2016-10-13 19:08:48 +08:00
接上一条。尤其是下图这种,很受影响:
![]( )
zhouzm
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
2016-10-14 11:39:31 +08:00
@zhouzm 谢谢🙏妈妈再也不用担心我的英语😂

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/310800

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX