Easydict 易词典 | English
Easydict
是一个简洁易用的翻译词典 macOS App,能够轻松优雅地查找单词或翻译文本。Easydict 开箱即用,能自动识别输入文本语言,支持输入翻译,划词翻译和 OCR 截图翻译,可同时查询多个翻译服务结果,目前支持有道词典,🍎苹果系统翻译,DeepL,谷歌,百度和火山翻译。
- 开箱即用,便捷查询单词或翻译文本。
- 自动识别输入语言,自动查询目标偏好语言。
- 自动划词查询,划词后自动显示查询图标,鼠标悬浮即可查询。
- 支持为不同窗口配置不同的服务。
- 支持系统 OCR 截图翻译。
- 支持系统 TTS。
- 支持 macOS 系统翻译。详情请看 如何在 Easydict 中使用 🍎 macOS 系统翻译?
- 支持有道词典,DeepL,Google,百度和火山翻译。
- 支持 48 种语言。
下一步:
- 支持翻译服务 API 调用。
- 支持更多查询服务。
- 支持 macOS 系统词典。
如果觉得这个应用还不错,给个 Star ⭐️ 支持一下吧 (^-^)
你可以使用下面两种方式之一安装。支持系统 macOS 11.0+
下载 最新版本的 Easydict。
2. Homebrew 安装 (感谢 BingoKingo)
brew install easydict
如果你是一名开发者,或者对这个项目感兴趣,也可以尝试手动构建运行,整个过程非常简单,甚至不需懂 macOS 开发知识。
只需要下载这个 Repo,然后使用 Xcode 打开 Easydict.xcworkspace
文件(Easydict.xcodeproj
!),Cmd + R
编译运行即可。
如果编译出现签名错误,请在 target 的 Signing & Capabilities
页面改用你自己的开发者账号。如果你还不是苹果开发者,只要去 https://developer.apple.com/ 免费注册一下就可以。
构建环境:Xcode 13 macOS, Big Sur 11.3。 为避免不必要的问题,建议使用最新的 Xcode 和 macOS 版本 tisfeng#79
Easydict 是开源软件,本身是安全的,但由于苹果严格的检查机制,打开时可能会遇到警告拦截。
常见问题:
- 如果遇到下面 无法打开 Easydict 问题,请参考苹果使用手册 打开来自身份不明开发者的 Mac App
无法打开“Easydict.dmg”,因为它来自身份不明的开发者。
- 如果提示应用已损坏,请参考 macOS 绕过公证和应用签名方法
“Easydict” 已损坏,无法打开。
在终端里输入以下命令,并输入密码即可。
sudo xattr -rd com.apple.quarantine /Applications/Easydict.app
Easydict 启动之后,除了应用主界面(默认隐藏),还会有一个菜单图标,点击菜单选项即可触发相应的功能,如下所示:
目前支持多种鼠标快捷取词方式:双击取词、鼠标滑动取词、Shift 取词(多段落)和三击取词(段落),在某些应用中【鼠标滑动取词】可能会失败,此时可换其他取词方式。
快捷键取词在任意应用中都可以正常工作,如遇到不能取词的应用,可提 issue 解决 tisfeng#84
-
划词翻译,需要开启
辅助功能
权限,鼠标划词功能仅在第一次使用时会触发申请辅助功能权限,授权后才能正常使用自动划词翻译功能。 -
截图翻译,需要开启
屏幕录制
权限,应用仅会在第一次使用 截图翻译 时会自动弹出权限申请对话框,若授权失败,后续需自己去系统设置中开启。
目前仅支持系统 OCR,稍后会引入第三方 OCR 服务。
系统 OCR 支持语言:简体中文,繁体中文,英语,日语,韩语,法语,西班牙语,葡萄牙语,德语,意大利语,俄语,乌克兰语。
目前支持系统语种识别,百度和 Google 语种识别三种,但考虑到在线识别的速度问题以及不稳定性( Google 还需要翻墙),其他两种识别服务只用于辅助优化。
默认使用系统语种识别,经调教后,系统语种识别的准确率已经很高了,能够满足大部分用户的需求。
如果在实际使用中还是觉得系统语种识别不准确,可在设置中开启百度语种识别或 Google 语种识别优化,但请注意,这可能会导致响应速度变慢,而且识别率也不会 100% 符合用户期望。如遇到识别有误情况,可手动指定语种类型。
目前支持有道词典,苹果系统翻译,DeepL,Google,百度和火山翻译服务。
注意
⚠️ : Google 翻译中国版已无法使用,只能使用国际版,因此需要走代理才能使用 Google 翻译。
翻译服务支持语言:
语言 | 有道词典 | 🍎 系统翻译 | DeepL 翻译 | Google 翻译 | 百度翻译 | 火山翻译 |
---|---|---|---|---|---|---|
中文(简体) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
中文(繁体) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
英语 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
日语 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
韩语 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
法语 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
西班牙语 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
葡萄牙语 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
意大利语 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
德语 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
俄语 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
阿拉伯语 | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
瑞典语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
罗马尼亚语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
泰语 | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
斯洛伐克语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
荷兰语 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
匈牙利语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
希腊语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
丹麦语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
芬兰语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
波兰语 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
捷克语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
土耳其语 | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ |
立陶宛语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
拉脱维亚语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
乌克兰语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
保加利亚语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
印尼语 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
马来语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
斯洛文尼亚语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
爱沙尼亚语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
越南语 | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
波斯语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
印地语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
泰卢固语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
泰米尔语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
乌尔都语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
菲律宾语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
高棉语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
老挝语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
孟加拉语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
缅甸语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
挪威语 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
塞尔维亚语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
克罗地亚语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
蒙古语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
希伯来语 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
DeepL 网页免费版有频率限制,很容易触发 429 报错,因此 1.3.0 版本增加了对 DeepL 官方 API 支持,暂时还没写界面,需通过命令方式启用。
如果你有 DeepL AuthKey,建议使用个人的 AuthKey,这样可以避免频率限制, 用户体验会更好。
在输入框输入下面代码,xxx 是你的 DeepL AuthKey,然后 Enter
easydict:https://writeKeyValue?EZDeepLAuthKey=xxx
- 默认优先使用网页版 API,在网页版 API 失败时会使用个人的 AuthKey (如果有)
easydict:https://writeKeyValue?EZDeepLTranslationAPIKey=0
- 优先使用个人的 AuthKey,失败时使用网页版 API。若高频率使用 DeepL,建议使用这种方式,能减少一次失败的请求,提高响应速度。
easydict:https://writeKeyValue?EZDeepLTranslationAPIKey=1
- 只使用个人的 AuthKey
easydict:https://writeKeyValue?EZDeepLTranslationAPIKey=2
你需要先安装 PopClip,然后为 Easydict
设置一个快捷键,默认是 Opt + D
,那么你就可以通过 PopClip
快速打开 Easydict
啦!
使用方法:选中以下代码块,PopClip
会显示 "安装 Easydict",点击它即可。
注意
⚠️ : 如果你修改了默认的快捷键,你需要跟着修改下面脚本中的快捷键key combo
。
# popclip
name: Easydict
icon: square E
key combo: option D
参考: https://github.com/pilotmoon/PopClip-Extensions#key-combo-string-format
设置页提供了一些偏好设置修改,如开启查询后自动播放单词发音,修改翻译快捷键,开启、关闭服务,或调整服务顺序等。
Easydict 有 3 种窗口类型,可以分别为它们设置不同的服务。
- 迷你窗口:鼠标自动取词时显示。
- 侧悬浮窗口:快捷键取词和截图翻译时显示。
- 主窗口:默认关闭,可在设置中开启,程序启动时显示。(稍后会增强主窗口功能)
Easydict 有一些应用内快捷键,方便你在使用过程中更加高效。
不同于前面的翻译快捷键全局生效,下面这些快捷键只在 Easydict 窗口前台显示时生效。
Enter
: 输入文本后,按下 Enter 开始查询。Shift + Enter
: 输入换行。Cmd + ,
: 打开设置页。Cmd + K
: 清空输入框。Cmd + Shift + K
: 清空输入框和查询结果,等同于点击输入框右下角的清空按钮。Cmd + I
: 聚集输入框。(Focus Input)Cmd + Shift + C
: 复制查询内容。Cmd + S
: 播放查询文本的发音。(Play Sound)Cmd + R
: 再次查询。(Retry Query)Cmd + T
: 切换翻译语言。(Toggle Translate Language)Cmd + P
: 钉住窗口。(Pin Window,再次按下取消钉住)Cmd + W
: 关闭窗口。Cmd + Enter
: 默认打开 Google 搜索引擎,搜索内容为输入文本,效果等同手动点击右上角的浏览器搜索图标。Cmd + Shift + Enter
: 若电脑上安装了欧路词典 App,则会在 Google 图标左边显示一个 Eudic 图标,动作为打开欧路词典 App 查询。
只要唤醒了查询窗口,就可以通过快捷键 Cmd + ,
打开设置页。若不小心隐藏了菜单栏图标,可通过这种方式重新开启。
若发现 OCR 识别结果不对,可通过点击 ”识别为 xx“ 按钮指定识别语言来修正 OCR 结果。
- immersive-translate: 一个好用的沉浸式双语网页翻译扩展。
- ext-saladict: 沙拉查词,一个浏览器查词和翻译扩展。
- openai-translator: 基于 ChatGPT API 的划词翻译浏览器插件和跨平台桌面端应用。
- Raycast-Easydict: 我的另一个开源项目,一个 Raycast 扩展版本的 Easydict。
查询单词和翻译文本,是日常生活非常实用的功能,我用过很多翻译词典软件,但都不满意,直到遇见了 Bob。Bob
是一款优秀的翻译软件,但它不是开源软件,自从上架苹果商店后也不再免费提供应用更新。
作为一名开发者,也是众多开源软件的受益者,我觉得,这世界上应该存在一个免费开源版本的 Bob,于是我开发了 Easydict。现在,我每天都在大量使用 Easydict,我很喜欢它,也希望能够让更多的人了解它、使用它。
开源,让世界更美好。
- 这个项目的灵感来自 saladict 和 Bob,且初始版本是以 Bob (GPL-3.0) 为基础开发。Easydict 在原项目上进行了许多改进和优化,很多功能和 UI 都参考了 Bob。
- 截图功能是基于 isee15 的 Capture-Screen-For-Multi-Screens-On-Mac,并在此基础上进行了优化。
- 鼠标取词功能参考了 PopClip。
Easydict 为 GPL-3.0 开源协议,仅供学习交流,任何人都可以免费获取该产品和源代码。如果你认为您的合法权益受到侵犯,请立即联系作者。你可以自由使用源代码,但必须附上相应的许可证和版权声明。
Easydict 作为一个免费开源的非盈利项目,目前主要是作者个人在开发和维护,如果你喜欢这个项目,觉得它对你有帮助,可以考虑赞助支持一下这个项目,用爱发电,让它能够走得更远。
如果发电量足够,能够 Cover 苹果的 $99 年费,我会注册一个开发者账号,以解决应用签名问题,让更多人能够方便地使用 Easydict。
日期 | 用户 | 金额 | 留言 |
---|---|---|---|
2023-05-22 | 🍑 | 50 | 感谢开源 |
2023-05-22 | - | 200 | |
2023-05-22 | - | 150 |