中文 | English
Easydict
是一個簡潔易用的字典翻譯macOS App,能夠輕鬆優雅地查找單字或翻譯文字。 Easydict 開箱即用,可自動辨識輸入文字語言,支援輸入翻譯,劃詞翻譯和OCR 截圖翻譯,可同時查詢多個翻譯服務結果,目前支援有道字典, ? 蘋果系統字典,?蘋果系統翻譯, OpenAI,Gemini,DeepL,Google,騰訊,Bing,百度,小牛翻譯,彩雲小譯,阿里翻譯和火山翻譯。
開箱即用,便捷查詢單字或翻譯文字。
自動辨識輸入語言,自動查詢目標偏好語言。
自動劃詞查詢,劃詞後自動顯示查詢圖標,滑鼠懸浮即可查詢。
支援為不同視窗配置不同的服務。
支援智能查詢模式。
支援系統OCR 截圖翻譯,靜默截圖OCR。
支援系統TTS,支援Bing,Google,有道和百度線上TTS 服務。
支援? 蘋果系統字典,支援第三方字典,可手動導入mdict 字典。
支援macOS 系統翻譯。詳情請看如何在Easydict 中使用? macOS 系統翻譯?
支援有道字典,OpenAI,Gemini,DeepL,Google,Bing,騰訊,百度,小牛,彩雲,阿里和火山翻譯。
支援48 種語言。
如果覺得這個應用程式還不錯,給個Star ⭐️ 支持一下吧(^-^)
我們計畫用Swift 重構項目,如果你對這個開源專案感興趣,熟悉Swift/SwiftUI,歡迎加入我們的開發小組,一起完善這個專案#194。
Easydict
功能
Swift 重構計劃
目錄
安裝
建構環境
1. 手動下載安裝
2. Homebrew 安裝
開發者建構
使用
滑鼠劃詞
關於權限
OCR
語種識別
TTS 服務
查詢服務
配置AuthKey
自訂DeepL 介面地址
配置API 呼叫方式
DashScope
Groq
Google Gemini
配置個人的APIKey
OpenAI 查詢模式
OpenAI 自訂參數
各個服務支援的語言
? 蘋果系統字典
OpenAI 翻譯
自訂OpenAI 翻譯
內建AI 翻譯
Gemini 翻譯
DeepL 翻譯
騰訊翻譯
Bing 翻譯
小牛翻譯
彩雲小譯
阿里翻譯
智慧查詢模式
應用程式內查詢
URL Scheme
配合PopClip 使用
設定
一般
服務
應用程式內快捷鍵
Tips
類似開源項目
初衷
貢獻指南
Star History
致謝
聲明
贊助支持
贊助列表
你可以使用下面兩種方式之一來安裝。支援系統macOS 11.0+
下載最新版本的Easydict。
感謝BingoKingo 提供的最初安裝版本。
brew install --cask easydict
如果你是開發者,或對這個專案感興趣,也可以嘗試手動建置運行,整個過程非常簡單,甚至不需要懂macOS 開發知識。
下載這個Repo,然後使用Xcode 開啟Easydict.xcworkspace
檔(
注意不是Easydict.xcodeproj
)。
使用Cmd + R
編譯運行即可。
以下是可選步驟,僅針對開發協作者。
如果經常需要調試一些權限相關的功能,例如取詞或OCR,可選擇使用自己的蘋果帳號運行,請修改Easydict-debug.xcconfig
檔案中的DEVELOPMENT_TEAM
為你自己的Apple Team ID(你可以登入蘋果開發者網站找到它), CODE_SIGN_IDENTITY
改為Apple Development。
注意不要提交Easydict-debug.xcconfig
文件,你可以使用下面git 指令忽略這個文件的本機修改
git update-index --skip-worktree Easydict-debug.xcconfig
Xcode 13+, macOS Big Sur 11.3+。為避免不必要的問題,建議使用最新的Xcode 和macOS 版本#79
[!NOTE] 由於最新程式碼使用了String Catalog 功能,因此需要Xcode 15+ 才能編譯。 如果你的Xcode 版本較低,請使用xcode-14 分支,注意這是一個固定版本分支,不受維護。
如果執行遇到下面錯誤,請嘗試升級CocoaPods 到最新版本,然後執行pod install
。
DT_TOOLCHAIN_DIR cannot be used to evaluate LD_RUNPATH_SEARCH_PATHS, use TOOLCHAIN_DIR instead
Easydict 啟動之後,除了應用主介面(預設為隱藏),還會有一個選單圖標,點擊選單選項即可觸發相應的功能,如下所示:
方式 | 描述 |
---|---|
滑鼠劃詞翻譯 | 劃詞後自動顯示查詢圖標,滑鼠懸浮即可查詢 |
快速鍵劃詞翻譯 | 選取需要翻譯的文字之後,按下劃詞翻譯快速鍵即可(預設⌥ + D ) |
截圖翻譯 | 按下截圖翻譯快速鍵(預設⌥ + S ),截取需要翻譯的區域 |
輸入翻譯 | 按下輸入翻譯快速鍵(預設⌥ + A 或⌥ + F ),輸入需要翻譯的文本, Enter 鍵翻譯 |
靜默截圖OCR | 按下靜默截圖快速鍵(預設⌥ + ⇧ + S ),截取需要OCR 的區域,截圖OCR 結果將自動儲存到剪貼簿 |
目前支援多種滑鼠快捷劃詞方式:雙擊劃詞、滑鼠滑動劃詞、三擊劃詞(段落)和Shift 劃詞(多段落),在某些應用中【滑鼠滑動劃詞】可能會失敗,此時可換其他劃詞方式。
快捷鍵劃詞在任意應用中都可以正常運作。如遇到不能滑鼠劃詞的應用,可提issue 解決#84
劃詞功能流程:Accessibility > AppleScript > 模擬快捷鍵,優先使用輔助功能Accessibility 取詞,在Accessibility 取詞失敗(未授權或應用不支援)時,如果是瀏覽器應用(如Safari, Chrome),會嘗試使用AppleScript 取詞。若AppleScript 取詞還是失敗,最後則進行強制取詞-模擬快速鍵Cmd+C 取詞。
因此,建議開啟瀏覽器中的允许Apple 事件中的JavaScript
選項,這樣可以避免某些網頁的事件攔截,例如這種網頁強製附帶版權資訊問題,優化取詞體驗。
對於Safari 用戶,強烈建議開啟該選項,因為Safari 不支援Accessibility 取詞,而AppleScript 取詞體驗遠優於模擬快捷鍵取詞。
劃詞翻譯,需要開啟辅助功能
權限,滑鼠劃詞功能僅在第一次使用時會觸發申請輔助功能權限,授權後才能正常使用自動劃詞翻譯功能。
截圖翻譯,需要開啟屏幕录制
權限,應用程式僅會在第一次使用截圖翻譯時會自動彈出權限申請對話框,若授權失敗,後續需自行去系統設定開啟。
目前僅支援系統OCR,稍後會引入第三方OCR 服務。
系統OCR 支援語言:簡體中文,繁體中文,英語,日語,韓語,法語,西班牙語,葡萄牙語,德語,義大利語,俄語,烏克蘭語。
目前支援系統語種識別,百度和Google 語種識別三種,但考慮到線上識別的速度問題以及不穩定性(Google 還需要翻牆),其他兩種識別服務只用於輔助優化。
預設使用系統語種識別,經調教後,系統語種識別的準確率已經很高了,能夠滿足大部分使用者的需求。
如果在實際使用中還是覺得系統語種識別不準確,可在設定中開啟百度語種識別或Google 語種識別優化,但請注意,這可能會導致響應速度變慢,而且識別率也不會100% 符合用戶期望。如遇到識別有誤情況,建議手動指定語種類型。
目前支援系統TTS,支援Bing,Google,有道和百度線上TTS 服務。
系統TTS:最穩定可靠,但效果不是很好。通常作為備用選項,即使用其他TTS 錯誤時會改用系統TTS。
Bing TTS:綜合效果最好,即時合成神經網路語音,但比較耗時,且文字越長,合成時間越長,目前限制最多只能合成2000 個字符,約10 分鐘。
Google TTS:英文效果不錯,介面穩定,但需要翻牆,一次請求最多只能合成200 個字元。
有道TTS:整體效果不錯,介面穩定,尤其英文單字發音極佳,但最多只能合成600 個字元。
百度TTS:英文句子發音很好,口音很有特色,但最多只能合成約1000 個字元。
預設使用有道TTS,使用者可在設定中切換偏好TTS 服務。
鑑於有道TTS 的英文單字效果很好,因此英文單字優先使用有道TTS,其他文字則使用預設TTS 服務。
除系統TTS 外,其他TTS 服務都是非官方接口,可能不穩定。
目前支援有道字典,蘋果系統字典,蘋果系統翻譯,DeepL,Google,Bing,百度和火山翻譯。
Note
Google 翻譯中國版已無法使用,只能使用國際版,因此需要走代理才能使用Google 翻譯。
語言 | 有道字典 | ? 蘋果系統翻譯 | DeepL 翻譯 | Bing 翻譯 | Google 翻譯 | 百度翻譯 | 火山翻譯 |
---|---|---|---|---|---|---|---|
中文(簡體) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
中文(繁體) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
英語 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
日語 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
韓語 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
法語 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
西班牙語 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
葡萄牙語 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
義大利語 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
德文 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
俄文 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
阿拉伯語 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
瑞典語 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
羅馬尼亞語 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
泰語 | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
斯洛伐克語 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
荷蘭語 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
匈牙利語 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
希臘文 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
丹麥語 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
芬蘭語 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
波蘭語 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
捷克語 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
土耳其語 | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
立陶宛語 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
拉脫維亞語 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
烏克蘭語 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
保加利亞語 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
印尼語 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
馬來語 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
斯洛維尼亞語 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
愛沙尼亞語 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
越南語 | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
波斯語 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
印地語 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
泰盧固語 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
泰米爾語 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
烏爾都語 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
菲律賓語 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
高棉語 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
寮國語 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
孟加拉語 | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
緬甸語 | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
挪威語 | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
塞爾維亞語 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
克羅埃西亞語 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
蒙古語 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
希伯來文 | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
Easydict 自動支援字典App 中系統自帶的字典,如牛津英漢漢英字典(簡體中文-英文),現代漢語規範字典(簡體中文)等,只需在字典App 設定頁啟用對應的字典即可。
另外,蘋果字典也支援自訂導入字典,因此我們可以透過導入.dictionary 格式的字典來新增第三方字典,如簡明英漢字典,朗文當代高級英文辭典等。
詳情請看如何在Easydict 中使用? macOS 系統字典?
1.3.0 版本開始支援OpenAI 翻譯,需要使用OpenAI API key。
如果你沒有自己的OpenAI APIKey,可以藉助一些開源專案將第三方的LLM 接口轉為標準的OpenAI 接口,這樣就能直接在Easydict
中使用了。
例如one-api,one-api 是一個很好的OpenAI 介面管理開源項目,支援多個LLM 接口,包括Azure、Anthropic Claude、Google Gemini、智譜ChatGLM、百度文心一言、訊飛星火認知、阿里通義千問、360 智腦,騰訊混元,Moonshot AI,Groq,零一萬物,階躍星辰,DeepSeek,Cohere 等,可用於二次分發管理key,僅單可執行文件,已打包好Docker 映像,一鍵部署,開箱即用。
Important
2.6.0 版本實作了新的SwiftUI 設定頁(支援macOS 13+),支援GUI 方式設定服務API key,其他系統版本則需要在Easydict 的輸入框中使用指令方式設定。
Tip
如果電腦硬體支持,建議升級macOS 系統,以享受更好的使用者體驗。
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
小提醒:如果你只是偶爾不希望分析句子,可以不用關閉句子類型,只需要在【句子】後面加上一個波浪符~,這樣就會變成翻譯類型了。
設定自訂網域名稱和模型
// 設定介面的請求位址,例如 https://api.openai.com/v1/chat/completions easydict://writeKeyValue?EZOpenAIEndPointKey=xxx // 設定使用模型,例如 gpt-3.5-turbo easydict://writeKeyValue?EZOpenAIModelKey=xxx // 設定可使用模型列表,例如 gpt-3.5-turbo, gpt-4-turbo easydict://writeKeyValue?EZOpenAIAvailableModelsKey=xxx
由於OpenAI 官方介面對使用者IP 有限制,因此如果你需要反向代理,可以參考這個反代專案cloudflare-reverse-proxy
支援的配置項和OpenAI 一樣,只要將OpenA 換成CustomOpenAI 即可。
// 設定 API key easydict://writeKeyValue?EZCustomOpenAIAPIKey=sk-xxx // 設定介面的請求位址,例如 https://api.openai.com/v1/chat/completions easydict://writeKeyValue?EZCustomOpenAIEndPointKey=xxx // 設定使用模型,例如 gpt-3.5-turbo easydict://writeKeyValue?EZCustomOpenAIModelKey=xxx // 設定服務查詢模式,0 默認,1 始終關閉,2 始終開啟easydict://writeKeyValue?EZCustomOpenAIServiceUsageStatusKey=xxx
目前部分LLM 服務廠商提供有限制的免費AI 模型,例如阿里的靈積模型服務DashScope,Groq,Google Gemini 等。
為方便新用戶嚐鮮使用這些大模型AI 翻譯,我們新增了一個內建AI 翻譯服務,支援以下服務模型:
通義千問開源系列,開通DashScope 即獲贈總計1,000,000 tokens qwen1.5-32b-chat 模型目前限時免費開放中
qwen1.5-32b-chat
qwen-turbo
baichuan2-13b-chat-v1
deepseek-7b-chat
internlm-7b-chat
llama3-70b-8192
mixtral-8x7b-32768
gemini-pro
但請注意,上面這些內建的模型都有一定使用限制(主要是免費額度上的限制),我們不保證它們能一直穩定使用,建議用戶還是使用one-api 搭建自己的大模型服務。
Gemini 翻譯需要API key,可在官網控制台免費取得。
easydict://writeKeyValue?EZGeminiAPIKey=xxx
DeepL 免費版網頁API 對使用者單一IP 有頻率限制,頻繁使用會觸發429 too many requests 報錯,因此1.3.0 版本增加了對DeepL 官方API 的支持,暫時還沒寫介面,需透過指令方式啟用。
如果你有DeepL AuthKey,建議使用個人的AuthKey,這樣可以避免頻率限制,使用者體驗會更好。如果沒有,可以使用切換代理來規避429 報錯。
Tip
切換代理IP,這是通用的解決方案,對其他有頻率限制的服務同樣有效。
在輸入框輸入下面程式碼,xxx 是你的DeepL AuthKey,然後Enter
easydict://writeKeyValue?EZDeepLAuthKey=xxx
如果沒有自己的AuthKey,又需要大量使用DeepL 翻譯,那麼可以考慮自己部署支援DeepL 的介面服務,或是使用支援DeepL 的第三方服務。
這種情況需要設定自訂DeepL 介面位址,其中EZDeepLTranslateEndPointKey 的值應該是完整的請求URL,例如DeepL 官方介面是https://api-free.deepl.com/v2/translate
,如果自訂介面需要AuthKey,配置方式和前面一樣,介面參數和DeepL 官方保持一致。
使用自訂DeepL 介面位址的方式,在Easydict 程式中等同於DeepL 官方AuthKey API 形式。
Easydict 支援DeepLX 接口,詳情請看#464。
easydict://writeKeyValue?EZDeepLTranslateEndPointKey=xxx
預設優先使用網頁版API,在網頁版API 失敗時會使用個人的AuthKey(如果有)
easydict://writeKeyValue?EZDeepLTranslationAPIKey=0
優先使用個人的AuthKey,失敗時使用網頁版API。若高頻率使用DeepL,建議使用這種方式,能減少一次失敗的請求,提高回應速度。
easydict://writeKeyValue?EZDeepLTranslationAPIKey=1
只使用個人的AuthKey
easydict://writeKeyValue?EZDeepLTranslationAPIKey=2
騰訊翻譯需要API key,為使用方便,我們內建了一個key,這個key 有額度限制,不保證一直能用。
建議使用自己的API key,每位註冊用戶騰訊翻譯每月贈送500 萬字元流量,足以日常使用了。
// xxx 騰訊翻譯的 SecretId easydict://writeKeyValue?EZTencentSecretId=xxx // xxx 騰訊翻譯的 SecretKey easydict://writeKeyValue?EZTencentSecretKey=xxx
目前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
Note
Bing TTS 用的也是網頁接口,同樣容易觸發接口限制,且不會報錯提示,因此如果將Bing 設為預設的TTS,建議設定cookie。
小牛翻譯需要API key,為使用方便,我們內建了一個key,這個key 有額度限制,不保證一直能用。
建議使用自己的API key,每位註冊用戶小牛翻譯每日贈送20 萬字元流量。
// xxx 小牛翻譯的 APIKey easydict://writeKeyValue?EZNiuTransAPIKey=xxx
彩雲小譯需要Token,為使用方便,我們內建了一個token,這個token 有一定限制,不保證一直能用。
建議使用自己的Token,新用戶註冊會獲得100 萬字的免費翻譯額度。
// xxx 彩雲小譯的 Token easydict://writeKeyValue?EZCaiyunToken=xxx
阿里翻譯雖然目前支援網頁版接口,但這個接口有一定限制,不保證一直能用。
建議使用自己的API key,阿里翻譯每月免費額度一百萬字元。
easydict://writeKeyValue?EZAliAccessKeyId=xxx easydict://writeKeyValue?EZAliAccessKeySecret=xxx
目前查詢服務主要分為兩類:查詢單字(如蘋果字典)和翻譯文字(如DeepL),另外有些服務(如有道和Google),同時支援查詢單字和翻譯文字。
typedef NS_OPTIONS(NSUInteger, EZQueryTextType) { EZQueryTextTypeNone = 0, // 0EZQueryTextTypeTranslation = 1 << 0, // 01 = 1EZQueryTextTypeDictionary = 1 << 1, // 10 = 2EZQueryTextTypeSentence = 1 << 2, // 100 = 4};
Easydict 可以根據查詢文字的內容,自動啟用對應的查詢服務。
具體來說,在智慧查詢模式下,當查詢單字時,則只會呼叫支援【單字查詢】的服務;當翻譯文字時,則只會呼叫支援【文字翻譯】的服務。
對於單字查詢,支援查詢單字服務的效果明顯比簡單翻譯更好,例如蘋果字典和有道字典;而進行長文字翻譯時,啟用單字查詢服務沒有意義,例如使用蘋果字典來翻譯。
預設情況下,所有的翻譯服務都支援單字查詢(單字也屬於文本的一種),使用者可以手動調整,如設定Google 智慧模式只翻譯文本,只需要使用下面命令修改為translation | sentence
。
easydict://writeKeyValue?Google-IntelligentQueryTextType=5
同樣,對於一些同時支援查詢單字和翻譯文字的服務,如有道詞典,也可以設定它智慧模式只查詢單詞,設定類型為dictionary
easydict://writeKeyValue?Youdao-IntelligentQueryTextType=2
預設情況下,所有視窗都未開啟智慧查詢模式,使用者可手動啟用此功能:
easydict://writeKeyValue?IntelligentQueryMode-window1=1
window1 代表迷你窗口,window2 代表側懸浮窗口,賦值0 表示關閉,1 表示開啟。
Note
智慧查詢模式,只表示是否智慧啟用該查詢服務,使用者可隨時手動點選服務右側箭頭按鈕展開查詢。
支援Easydict 應用內便捷查詢。在輸入框或翻譯結果,如遇到不熟悉的單詞,可透過重壓右鍵喚出選單,選擇第一個「應用程式內查詢」。
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
會顯示"安裝擴充功能Easydict",點擊它即可。
-- #popclip-- name: Easydict-- icon: iconify:ri:translate-- language: applescripttell application "Easydict" launch open location "easydict://query?text={popclip text}"end tell
參考:https://www.popclip.app/dev/applescript-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 查詢。
只要喚醒了查詢窗口,就可以透過快捷鍵Cmd + ,
開啟設定頁。若不小心隱藏了功能表列圖標,可透過此方式重新開啟。
若發現OCR 辨識結果不對,可透過點擊」識別為xx「按鈕指定識別語言來修正OCR 結果。
immersive-translate: 一個好用的沉浸式雙語網頁翻譯擴充。
pot-desktop : 一個跨平台的劃詞翻譯和OCR 軟體。
ext-saladict: 沙拉查詞,一個瀏覽器查詞和翻譯擴充。
openai-translator: 基於ChatGPT API 的劃詞翻譯瀏覽器外掛程式和跨平台桌面端應用程式。
Raycast-Easydict: 我的另一個開源項目,一個Raycast 擴充版本的Easydict。
查詢單字和翻譯文本,是日常生活非常實用的功能,我用過很多字典翻譯軟體,但都不滿意,直到我遇見了Bob。 Bob
是優秀的翻譯軟體,但它不是開源軟體,自從上架蘋果商店後也不再免費提供應用程式更新。
身為開發者,也是眾多開源軟體的受益者,我覺得,這世界上應該有一個免費開源版本的Bob,所以我開發了Easydict。現在,我每天都在大量使用Easydict,我很喜歡它,也希望能夠讓更多的人了解它、使用它。
開源,讓世界更美好。
如果您對本專案感興趣,我們非常歡迎參與專案的貢獻中,我們將盡可能提供協助。
目前專案主要有dev 和main 兩個分支,dev 分支程式碼通常是最新的,可能包含一些正在開發中的功能。 main 分支程式碼是穩定的,會定期合併dev 分支的程式碼。
另外,我們計劃將專案從objc 遷移到Swift ,未來逐步使用Swift 來寫新功能模組,請參考#194
如果您認為專案有需要改進的地方,或有新的功能想法,歡迎提交PR:
如果PR 是對已存在的issue 進行bug 修復或功能實現,請提交至dev 分支。
如果PR 是關於某個新功能或涉及UI 等較大的變動,建議先開個issue 討論一下,避免功能重複或衝突。
這個專案的靈感來自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。