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,支援自訂快捷鍵、色彩主題,以及可選的剪貼簿複製功能(透過 xclipwl-clipboard 或 OSC 52)。
  • 支援原始文字與翻譯後文字的語音合成,並提供播放/停止控制。
  • 支援交換來源語言與目標語言、清除緩衝區、複製選取文字或全部文字。

安裝方式

  • Linux 與 macOS 的預先編譯二進位檔可在 GitHub Releases 頁面取得。
  • Arch Linux 使用者可安裝 AUR 套件 gtt-binyay -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.yamltheme.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-shellSimplyTranslate-Enginess0ftik3/reverso-api 的請求邏輯,並從 snsd0805/GoogleTranslate-TUIturk/free-google-translate 獲得 UI 靈感。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案