酷集集软件

酷集集软件 » 应用软件 » Mac下的翻译软件APP 支持划词翻译和 OCR 截图翻译、ChatGPT

Mac下的翻译软件APP 支持划词翻译和 OCR 截图翻译、ChatGPT

Easydict 是一个简洁易用的词典翻译 macOS App,能够轻松优雅地查找单词或翻译文本。Easydict 开箱即用,能自动识别输入文本语言,支持输入翻译,划词翻译和 OCR 截图翻译,可同时查询多个翻译服务结果,目前支持 有道词典,? 苹果系统词典,? 苹果系统翻译,OpenAI (ChatGPT),DeepL,Google,Bing,百度 和 火山翻译。

软件主页及下载地址:https://github.com/tisfeng/Easydict

功能
开箱即用,便捷查询单词或翻译文本。
自动识别输入语言,自动查询目标偏好语言。
自动划词查询,划词后自动显示查询图标,鼠标悬浮即可查询。
支持为不同窗口配置不同的服务。
支持智能查询模式。
支持系统 OCR 截图翻译,静默截图 OCR。
支持系统 TTS,支持 Bing,Google,有道和百度在线 TTS 服务。
支持 ? 苹果系统词典,支持第三方词典,可手动导入 mdict 词典。
支持 macOS 系统翻译。详情请看 如何在 Easydict 中使用 ? macOS 系统翻译?
支持有道词典,OpenAI (ChatGPT),DeepL,Google,Bing,百度和火山翻译。
支持 48 种语言。

签名问题 ⚠️
Easydict 是开源软件,本身是安全的,但由于苹果严格的检查机制,打开时可能会遇到警告拦截。

常见问题
如果遇到下面 无法打开 Easydict 问题,请参考苹果使用手册 打开来自身份不明开发者的 Mac App
无法打开“Easydict.dmg”,因为它来自身份不明的开发者。

一个简洁优雅的词典翻译 Macos App

一个简洁优雅的词典翻译 Macos App

一个简洁优雅的词典翻译 Macos App

OpenAI(ChatGPT)翻译
1.3.0 版本开始支持 OpenAI 翻译,也支持 Azure OpenAI 接口,暂时还未写界面,需要在 Easydict 的输入框中使用如下命令方式配置。

请先确保你有 APIKey。

配置 APIKey

easydict://writeKeyValue?EZOpenAIAPIKey=sk-xxx

查看 APIKey (其他 key 类似),如果查询成功,会将结果写到剪贴板。

easydict://readValueOfKey?EZOpenAIAPIKey

查询模式
目前 OpenAI 支持三种查询模式:单词,句子和长翻译,默认都是开启的,其中单词和句子也可关闭。
考虑到 OpenAI 的 token 费用因素,因此提供默认关闭选项,写入下面命令后,OpenAI 将默认关闭查询,仅在用户手动点击展开按钮时才查询

easydict://writeKeyValue?EZOpenAIServiceUsageStatusKey=1

// 关闭查单词
easydict://writeKeyValue?EZOpenAIDictionaryKey=0

// 关闭句子分析
easydict://writeKeyValue?EZOpenAISentenceKey=0

温馨提示:如果你只是偶尔不希望分析句子,可以不用关闭句子类型,只需要在【句子】后面添加一个波浪符~,这样就会变成翻译类型了。

一个简洁优雅的词典翻译 Macos App

自定义设置
支持设置自定义域名和模型

// xxx 是 host,默认是 api.openai.com
easydict://writeKeyValue?EZOpenAIDomainKey=xxx

// xxx 是完整的请求地址,例如 https://api.ohmygpt.com/azure/v1/chat/completions
easydict://writeKeyValue?EZOpenAIEndPointKey=xxx

// xxx 默认是 gpt-3.5-turbo
easydict://writeKeyValue?EZOpenAIModelKey=xxx

由于 OpenAI 官方接口对用户 IP 有限制,因此如果你需要反向代理,可以参考下面这个反代项目
https://github.com/gaboolic/cloudflare-reverse-proxy

DeepL 翻译

DeepL 免费版网页 API 对用户单个 IP 有频率限制,频繁使用会触发 429 too many requests 报错,因此 1.3.0 版本增加了对 DeepL 官方 API 的支持,暂时还没写界面,需通过命令方式启用。

如果你有 DeepL AuthKey,建议使用个人的 AuthKey,这样可以避免频率限制,用户体验会更好。如果没有,可以使用切换代理来规避 429 报错。

切换代理 IP,这是通用的解决方案,对其他有频率限制的服务同样有效。

配置 AuthKey
在输入框输入下面代码,xxx 是你的 DeepL AuthKey,然后 Enter

easydict://writeKeyValue?EZDeepLAuthKey=xxx

配置 API 调用方式
默认优先使用网页版 API,在网页版 API 失败时会使用个人的 AuthKey(如果有)

easydict://writeKeyValue?EZDeepLTranslationAPIKey=0

优先使用个人的 AuthKey,失败时使用网页版 API。若高频率使用 DeepL,建议使用这种方式,能减少一次失败的请求,提高响应速度。
easydict://writeKeyValue?EZDeepLTranslationAPIKey=1

只使用个人的 AuthKey
easydict://writeKeyValue?EZDeepLTranslationAPIKey=2

Bing 翻译

目前 Bing 翻译使用的是网页接口,当触发频率限制 429 报错时,除了切换代理,还可以通过手动设置请求 cookie 来续命,具体续命多久暂时不清楚。

具体步骤是,使用浏览器打开 Bing Translator,登录,然后在控制台执行以下代码获取 cookie

cookieStore.get("MUID").then(result => console.log(encodeURIComponent("MUID=" + result.value)));

最后将 cookie 使用命令写入 Easydict

// xxx 是前面获取的 cookie
easydict://writeKeyValue?EZBingCookieKey=xxx

Bing TTS 用的也是网页接口,同样容易触发接口限制,且不会报错提示,因此如果将 Bing 设为默认的 TTS,建议设置 cookie。

智能查询模式

目前查询服务主要分为两类:查询单词(如苹果词典)和翻译文本(如 DeepL),另外有些服务(如有道和谷歌),同时支持查询单词和翻译文本。

typedef NS_OPTIONS(NSUInteger, EZQueryTextType) {
EZQueryTextTypeNone = 0, // 0
EZQueryTextTypeTranslation = 1 << 0, // 01 = 1 EZQueryTextTypeDictionary = 1 << 1, // 10 = 2 EZQueryTextTypeSentence = 1 << 2, // 100 = 4 };

Easydict 可以根据查询文本的内容,自动启用相应的查询服务。

具体来说,在智能查询模式下,当查询单词时,则只会调用支持【单词查询】的服务;当翻译文本时,则只会调用支持【文本翻译】的服务。

对于单词,支持查询单词的服务效果明显比翻译更好,而翻译文本时,启用单词查询服务

默认情况下,所有的翻译服务都支持单词查询(单词也属于文本的一种),用户可以手动调整,如设置 Google 智能模式只翻译文本,只需要使用下面命令修改为 translation | sentence 即可。

easydict://writeKeyValue?Google-IntelligentQueryTextType=5

同样,对于一些同时支持查询单词和翻译文本的服务,如有道词典,也可以设置它智能模式只查询单词,设置类型为 dictionary

easydict://writeKeyValue?Youdao-IntelligentQueryTextType=2

默认情况下,只有【迷你窗口】启用了智能查询模式,用户也可以手动对【侧悬浮窗口】启用智能查询模式:

easydict://writeKeyValue?IntelligentQueryMode-window2=1

window1 代表迷你窗口,window2 代表侧悬浮窗口,赋值 0 表示关闭,1 表示开启。

智能查询模式,只表示是否智能启用该查询服务,用户可随时手动点击服务右侧箭头按钮展开查询。

应用内查询

支持 Easydict 应用内便捷查询。在输入框或翻译结果,如遇到不熟悉的单词,可通过重压右击唤出菜单,选择第一个“应用内查询”。

URL Scheme

Easydict 支持 URL scheme 快速查询:easydict://query?text=xxx,如 easydict://query?text=good。

如果查询内容 xxx 包含特殊字符,需进行 URL encode,如 easydict://query?text=good%20girl

Warning

旧版本的 easydict://xxx 在某些场景下可能会出现问题,因此建议使用完整的 URL Scheme: easydict://query?text=xxx

配合 PopClip 使用

你需要先安装 PopClip,然后选中以下代码块,PopClip 会显示 "安装扩展 Easydict",点击它即可。(By liziqiang)

# popclip
name: Easydict
icon: iconify:ri:translate
interpreter: zsh
shell script: |
result=$(ps aux | grep Easydict.app | wc -l)
if [[ $result -lt 2 ]];then
open /Applications/Easydict.app
sleep 2
fi
open "easydict://query?text=$POPCLIP_TEXT"

参考:https://www.popclip.app/dev/shell-script-actions

设置

设置页提供了一些设置修改,如开启查询后自动播放单词发音,修改翻译快捷键,开启、关闭服务,或调整服务顺序等。

服务
Easydict 有 3 种窗口类型,可以分别为它们设置不同的服务。

迷你窗口:鼠标自动划词时显示。
侧悬浮窗口:快捷键划词和截图翻译时显示。
主窗口:默认关闭,可在设置中开启,程序启动时显示。(稍后会增强主窗口功能)

应用内快捷键

Easydict 有一些应用内快捷键,方便你在使用过程中更加高效。

不同于前面的翻译快捷键全局生效,下面这些快捷键只在 Easydict 窗口前台显示时生效。

Enter: 输入文本后,按下 Enter 开始查询。
Shift + Enter: 输入换行。
Cmd + ,: 打开设置页。
Cmd + Q: 退出应用。
Cmd + K: 清空输入框。
Cmd + Shift + K: 清空输入框和查询结果,等同于点击输入框右下角的清空按钮。
Cmd + I: 聚集输入框。(Focus Input)
Cmd + Shift + C: 复制查询内容。
Cmd + Shift + J: 复制首个翻译结果。
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 查询。

Tips
只要唤醒了查询窗口,就可以通过快捷键 Cmd + , 打开设置页。若不小心隐藏了菜单栏图标,可通过这种方式重新开启。

一个简洁优雅的词典翻译 Macos App

若发现 OCR 识别结果不对,可通过点击”识别为 xx“按钮指定识别语言来修正 OCR 结果。

初衷
查询单词和翻译文本,是日常生活非常实用的功能,我用过很多词典翻译软件,但都不满意,直到遇见了 Bob。Bob (https://bobtranslate.com/)是一款优秀的翻译软件,但它不是开源软件,自从上架苹果商店后也不再免费提供应用更新。

作为一名开发者,也是众多开源软件的受益者,我觉得,这世界上应该存在一个免费开源版本的 Bob,于是我开发了 Easydict。现在,我每天都在大量使用 Easydict,我很喜欢它,也希望能够让更多的人了解它、使用它。

开源,让世界更美好。

贡献指南
如果您对本项目感兴趣,我们非常欢迎参与到项目的贡献中,我们会尽可能地提供帮助。

目前项目主要有 dev 和 main 两个分支,dev 分支代码通常是最新的,可能包含一些正在开发中的功能。main 分支代码是稳定的,会定期合并 dev 分支的代码。

另外,我们计划将项目从 objc 向 Swift 迁移,未来逐步使用 Swift 来写新功能模块,参见https://github.com/tisfeng/Easydict/issues/194

如果您认为项目有需要改进的地方,或者有新的功能想法,欢迎提交 PR:

如果 PR 是对已存在的 issue 进行 bug 修复或者功能实现,请提交到 dev 分支。

如果 PR 是关于某个新功能或者涉及 UI 等较大的变动,建议先开个 issue 讨论一下,避免功能重复或者冲突。

软件的下载地址:https://github.com/tisfeng/Easydict



微信扫描下方的二维码阅读本文

你可能也喜欢

热门文章