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 启发。
相关
- 项目
- 项目
- 项目
- 项目
- 项目