mirror of
https://github.com/eeeXun/GTT.git
synced 2025-05-18 08:40:35 -07:00
170 lines
4.5 KiB
Markdown
170 lines
4.5 KiB
Markdown
# gtt
|
|
|
|
Google Translate TUI (Originally)
|
|
|
|
Supported Translator:
|
|
[`Apertium`](https://www.apertium.org/),
|
|
[`Argos`](https://translate.argosopentech.com/),
|
|
[`Bing`](https://www.bing.com/translator),
|
|
[`ChatGPT`](https://chat.openai.com/),
|
|
[`DeepL`](https://deepl.com/translator)(only free API),
|
|
[`Google`](https://translate.google.com/)(default),
|
|
[`Reverso`](https://www.reverso.net/text-translation)
|
|
|
|
## ⚠️ Note for ChatGPT and DeepL
|
|
|
|
ChatGPT and DeepL translations require API keys, which can be obtained from
|
|
[OpenAI API keys](https://platform.openai.com/account/api-keys) and
|
|
[DeepL API signup](https://www.deepl.com/pro-api) pages, respectively. Note
|
|
that only the free API is supported for DeepL currently. Once you have your
|
|
API key add it to `$XDG_CONFIG_HOME/gtt/gtt.yaml` or
|
|
`$HOME/.config/gtt/gtt.yaml`
|
|
|
|
```yaml
|
|
api_key:
|
|
chatgpt: CHATGPT_API_KEY # <- Replace with your API Key
|
|
deepl: DEEPL_API_KEY # <- Replace with your API Key
|
|
```
|
|
|
|
## ScreenShot
|
|
|
|

|
|
|
|
## Install
|
|
|
|
### Dependencies
|
|
|
|
For Arch Linux, you need `alsa-lib`.
|
|
For Ubuntu or Debian, you need `libasound2-dev`.
|
|
For RedHat-based Linux, you need `alsa-lib-devel`.
|
|
|
|
[`xclip`](https://github.com/astrand/xclip) (optional) - for Linux/X11 to copy text.
|
|
|
|
[`wl-clipboard`](https://github.com/bugaevc/wl-clipboard) (optional) - for Linux/Wayland to copy text.
|
|
|
|
### Arch Linux ([AUR](https://aur.archlinux.org/packages/gtt-bin))
|
|
|
|
```sh
|
|
yay -S gtt-bin
|
|
```
|
|
|
|
### Prebuild
|
|
|
|
Binary file is available in [Release Page](https://github.com/eeeXun/gtt/releases) for Linux and macOS on x86_64.
|
|
|
|
### From source
|
|
|
|
#### go install
|
|
|
|
```sh
|
|
go install github.com/eeeXun/gtt@latest
|
|
```
|
|
|
|
And make sure `$HOME/go/bin` is in your `$PATH`
|
|
|
|
```sh
|
|
export PATH=$PATH:$HOME/go/bin
|
|
```
|
|
|
|
#### go build
|
|
|
|
```sh
|
|
git clone https://github.com/eeeXun/gtt.git && cd gtt && go build -ldflags="-s -w -X main.version=$(git describe --tags)"
|
|
```
|
|
|
|
### Run on Docker
|
|
|
|
```sh
|
|
docker run -it eeexun/gtt
|
|
```
|
|
|
|
## Create a theme
|
|
|
|
You can create a theme with theme name. And you must provide the color of `bg`, `fg`, `gray`, `red`, `green`, `yellow`, `blue`, `purple`, `cyan`, `orange`.
|
|
|
|
And note that:
|
|
|
|
- `bg` is for background color
|
|
- `fg` is for foreground color
|
|
- `gray` is for selected color
|
|
- `yellow` is for label color
|
|
- `orange` is for KeyMap menu color
|
|
|
|
See the example in [theme.yaml](example/theme.yaml) file. This file should located at `$XDG_CONFIG_HOME/gtt/theme.yaml` or `$HOME/.config/gtt/theme.yaml`
|
|
|
|
## Language in argument
|
|
|
|
You can pass `-src` and `-dst` in argument to set source and destination language.
|
|
|
|
```sh
|
|
gtt -src "English" -dst "Chinese (Traditional)"
|
|
```
|
|
|
|
See available languages on:
|
|
|
|
- [Apertium Translate](https://www.apertium.org/) for `Apertium`
|
|
- [argosopentech/argos-translate](https://github.com/argosopentech/argos-translate#supported-languages) for `Argos`
|
|
- [Bing language-support](https://learn.microsoft.com/en-us/azure/cognitive-services/translator/language-support#translation) for `Bing`
|
|
- `ChatGPT` is same as `Google`. See [Google Language support](https://cloud.google.com/translate/docs/languages)
|
|
- [DeepL API docs](https://www.deepl.com/docs-api/translate-text/) for `DeepL`
|
|
- [Google Language support](https://cloud.google.com/translate/docs/languages) for `Google`
|
|
- [Reverso Translation](https://www.reverso.net/text-translation) for `Reverso`
|
|
|
|
## Key Map
|
|
|
|
`<C-c>`
|
|
Exit program.
|
|
|
|
`<Esc>`
|
|
Toggle pop out window.
|
|
|
|
`<C-j>`
|
|
Translate from source to destination window.
|
|
|
|
`<C-s>`
|
|
Swap language.
|
|
|
|
`<C-q>`
|
|
Clear all text in source of translation window.
|
|
|
|
`<C-y>`
|
|
Copy selected text.
|
|
|
|
`<C-g>`
|
|
Copy all text in source of translation window.
|
|
|
|
`<C-r>`
|
|
Copy all text in destination of translation window.
|
|
|
|
`<C-o>`
|
|
Play text to speech on source of translation window.
|
|
|
|
`<C-p>`
|
|
Play text to speech on destination of translation window.
|
|
|
|
`<C-x>`
|
|
Stop playing text to speech.
|
|
|
|
`<C-t>`
|
|
Toggle transparent.
|
|
|
|
`<C-\>`
|
|
Toggle Definition/Example & Part of speech.
|
|
|
|
`<Tab>`, `<S-Tab>`
|
|
Cycle through the pop out widget.
|
|
|
|
`<1>`, `<2>`, `<3>`
|
|
Switch pop out window.
|
|
|
|
## Credit
|
|
|
|
[soimort/translate-shell](https://github.com/soimort/translate-shell),
|
|
[SimplyTranslate-Engines](https://codeberg.org/SimpleWeb/SimplyTranslate-Engines),
|
|
[s0ftik3/reverso-api](https://github.com/s0ftik3/reverso-api)
|
|
For translation URL.
|
|
|
|
[snsd0805/GoogleTranslate-TUI](https://github.com/snsd0805/GoogleTranslate-TUI) For inspiration.
|
|
|
|
[turk/free-google-translate](https://github.com/turk/free-google-translate) For Google translate in Golang.
|