eeeXun/gtt
Google Translate TUI (Originally). Currently supports Apertium, Bing, ChatGPT, DeepL, DeepLX, Google, LibreTranslate, Reverso.
gtt – ターミナルベースの翻訳UI
何であるか – gtt はGoで書かれた小さなコマンドラインプログラムで、ターミナルから離れずにテキストを1言語から別の言語に翻訳できます。2つのペイン(元のテキストと翻訳結果)を表示し、Google、DeepL、Bing、Apertium、LibreTranslate、Reverso、さらにはChatGPTベースの翻訳など、いくつかのオンライン翻訳サービスから選択できます。UIはキーボードショートカットで操作でき、翻訳結果を音声で読み上げるためのテキスト読み上げエンドポイントも利用可能です。
主な機能
- 複数のバックエンドをサポート。実行中にプロバイダを切り替えられます。
- 無料API(Google、Bingなど)と、キーが必要な有料API(ChatGPT、DeepL、LibreTranslate、DeepLX)の両方に対応。キーはシンプルなYAML設定ファイルに保存されます。
- カスタマイズ可能なキーバインド、カラーテーマ、オプションのクリップボードコピー機能(
xclip、wl-clipboard、またはOSC 52経由)を備えたフルスクリーンTUI。 - 元のテキストおよび翻訳後のテキストの両方に対して音声読み上げが可能。再生/停止コントロールも利用可能。
- 元言語と翻訳先言語の入れ替え、バッファのクリア、選択したテキストまたはすべてのテキストのコピーが可能。
インストール方法
- LinuxおよびmacOS用の事前ビルド済みバイナリはGitHubリリースページにあります。
- 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 は同じ機能をターミナルに持ち込み、リモート作業、スクリプト作成、またはシェル内での作業フローに最適です。複数のバックエンドをサポートすることで、翻訳品質の比較や、有料APIが利用できない場合の無料サービスへのフォールバックが可能になります。
クレジット – このプロジェクトは soimort/translate-shell、SimplyTranslate-Engines、s0ftik3/reverso-api からのリクエストロジックを再利用しており、UIのインスピレーションは snsd0805/GoogleTranslate-TUI と turk/free-google-translate から得ています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト