嗨~這裡是 liuyuxin,由於國慶假期和其他一些個人原因,我的周報停更很久了。準備重新收拾一下,從下週開始恢復更新。
今天的這篇文章主要談談我最近在做的一個開源項目:基於 Flutter 的劃詞翻譯軟體。
背景回顧#
我在 Weekly 5:Rust 學起來 中提到,從 Windows 系統換到 Linux 後,我最不適應問題之一是之前在用的劃詞翻譯軟體 pot 對 Ubuntu 的支持不太好。儘管我現在已經固定在 Kubuntu 系統,pot 的翻譯體驗依舊糟糕,每次使用快捷鍵進行劃詞翻譯時響應時間都很長。於是我打算自己寫一個劃詞翻譯的軟體,力求快捷鍵響應速度快一些。
技術方面選用了我較熟悉的 Flutter 框架,當時我正在忙著把 MeRead 擴展到桌面平台,正好也可以借此熟悉一下 Flutter 在桌面端的應用。
開發經過#
得益於 Flutter 優秀的開發速度,最初只花了半個晚上就弄出來一個能用的 demo,通過調用百度翻譯的 API 進行文本翻譯。國慶假期後,又陸陸續續花了一些時間進行優化和改進,接入了更多的翻譯服務。就「劃詞翻譯」這一功能而言,目前已經很完善了。
於是準備開源。先隨隨便便從 iconfont 上找了個圖標做 logo,稍微整理一下程式碼檔案,再用 VitePress 做一個文件網站,最後上傳到 Github,就有了現在的「質感翻譯」。
為啥取名叫「質感翻譯」?因為毫無設計能力的我直接使用了 Flutter 內建 Material You 元件進行 UI 的堆砌。使用了「質感設計」的翻譯軟體幹脆就叫「質感翻譯」咯~
開源地址奉上:
糊出來的官網在這裡: https://metranslate.top
目前 star 依舊為 0,求 star、issue、pr!
目前成果#
先放一張截圖:
目前「質感翻譯」接入了 8 個翻譯服務和 2 個國產 AI 大模型,分別為:
說明 | 翻譯服務 |
---|---|
無需配置 | DeepL 翻譯、Google 翻譯、Yandex 翻譯、火山翻譯 Free |
需要自行申請 API | 百度翻譯、彩雲小譯、火山翻譯、小牛翻譯、有道翻譯 |
AI 大模型 | MiniMax、智譜 AI |
功能方面,目前完成的有:
- 自定義快捷鍵和全域字型
- 自動複製和刪除換行
- 設定代理
- AI 大模型調參
- 以及歷史記錄、開機自啟、自定義視窗透明度、視窗跟隨滑鼠等……
目前打包了 Windows 和 Linux 兩個版本,發在 Github,歡迎前往下載體驗:
https://github.com/gvenusleo/MeTranslate/releases/latest
說明一下,我是在 Linux 上進行的開發和測試,軟體在 Windows 上會不會有什麼未知的 Bug,我也不知道……
未來計劃#
由於開發「質感翻譯」的初衷是作為自用軟體,因此軟體的功能設計一直是跟著自己的感覺走。現在已經完成了我最主要的需求:劃詞翻譯。後續應該會考慮迭代添加以下功能:
- 截圖翻譯
- 文件翻譯
- 接入更多的翻譯服務和 AI 大模型
- 更多的快捷鍵支持
- 等等……
也歡迎在 Github 給我反饋!
最後的最後#
親自體驗過,才知道其實 Flutter 目前對桌面端的支持並不完善,不支持視窗多開,字型渲染一塌糊塗,很多桌面端需求被官方排在移動端之後,不少功能要靠社區 Packages 實現。但好在性能還是合格的(至少目前「質感翻譯」的記憶體佔用要比 pot 好很多)。
最後的最後:
- 感謝 leanflutter 提供的一系列桌面端 Flutter package。
- 感謝 pot 給我提供了靈感來源和設計參考。
- 感謝我的室友,作為除我之外「質感翻譯」的第一個使用者,幫我抓 Bug。