eeeXun/gtt
Google Translate TUI (Originally). Currently supports Apertium, Bing, ChatGPT, DeepL, DeepLX, Google, LibreTranslate, Reverso.
gtt – 終端基礎的翻譯 UI
是什麼 – gtt 是一個用 Go 寫成的輕量級命令列程式,讓你不用離開終端機就能在不同語言之間翻譯文字。它提供兩個面板——原始文字與目標文字,並支援從多個線上翻譯服務中選擇(Google、DeepL、Bing、Apertium、LibreTranslate、Reverso,甚至基於 ChatGPT 的翻譯)。UI 由鍵盤快速鍵驅動,還可透過服務的語音合成端點朗讀文字。
核心功能
- 支援多種後端,可隨時切換提供者。
- 兼容免費 API(如 Google、Bing)與需要金鑰的付費 API(如 ChatGPT、DeepL、LibreTranslate、DeepLX)。金鑰儲存在簡單的 YAML 設定檔中。
- 全螢幕 TUI,支援自訂快捷鍵、色彩主題,以及可選的剪貼簿複製功能(透過
xclip、wl-clipboard或 OSC 52)。 - 支援原始文字與翻譯後文字的語音合成,並提供播放/停止控制。
- 支援交換來源語言與目標語言、清除緩衝區、複製選取文字或全部文字。
安裝方式
- Linux 與 macOS 的預先編譯二進位檔可在 GitHub Releases 頁面取得。
- Arch Linux 使用者可安裝 AUR 套件
gtt-bin(yay -S gtt-bin)。 - Nix 使用者可從
nixpkgs-unstable加入gtt,或執行nix run github:nixos/nixpkgs#gtt。 - 從原始碼建置 – 執行
go install github.com/eeeXun/gtt@latest(將二進位檔新增至$HOME/go/bin),或克隆倉儲後執行go build。 - Docker 鏡像
eeexun/gtt也已提供(docker run -it eeexun/gtt:latest)。
設定方法
- 建立
$XDG_CONFIG_HOME/gtt/server.yaml(或$HOME/.config/gtt/server.yaml)。將 API 金鑰放在api_key.<service>.value下,或指向包含金鑰的檔案。 - 對於自架服務(如 DeepLX 或私人 LibreTranslate 實例),還需設定
host.<service>為IP:port。 - 可選的
keymap.yaml與theme.yaml檔案可放在同一設定目錄中,用於重新映射快捷鍵與變更顏色主題。
典型用法
# 使用預設設定(Google)將英文翻譯為繁體中文
gtt -src "English" -dst "Chinese (Traditional)"
在 UI 中可執行以下操作:
<C-j>– 翻譯目前來源文字面板。<C-s>– 交換來源語言與目標語言。<C-y>/<C-g>/<C-r>– 複製選取文字、全部來源文字或全部目標文字。<C-o>/<C-p>– 播放或停止朗讀來源文字或目標文字。<Esc>– 開啟彈出式選單,可變更提供者、切換透明度等。
為何重要 – 雖然許多開發者使用網頁版翻譯工具,但 gtt 將相同功能帶入終端機,對遠端工作、腳本撰寫或任何完全在 shell 內進行的流程都非常實用。透過支援多種後端,它允許你比較翻譯品質,或在付費 API 不可用時回退至免費服務。
致謝 – 本專案複用了 soimort/translate-shell、SimplyTranslate-Engines 與 s0ftik3/reverso-api 的請求邏輯,並從 snsd0805/GoogleTranslate-TUI 與 turk/free-google-translate 獲得 UI 靈感。
相關
- 專案
- 專案
- 專案
- 專案
- 專案