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 启发。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目