Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lifailon/multranslate
Cross-platform TUI for translating text using multiple providers simultaneously and support automatic detection of the source and destination language.
https://github.com/lifailon/multranslate
api blessed cli deepl deeplx google-translate javascript linux macos mymemory nodejs npm npm-module npm-package reverso translate translation translator tui windows
Last synced: about 23 hours ago
JSON representation
Cross-platform TUI for translating text using multiple providers simultaneously and support automatic detection of the source and destination language.
- Host: GitHub
- URL: https://github.com/lifailon/multranslate
- Owner: Lifailon
- License: mit
- Created: 2024-08-31T08:57:22.000Z (25 days ago)
- Default Branch: rsa
- Last Pushed: 2024-09-24T15:35:03.000Z (1 day ago)
- Last Synced: 2024-09-24T19:13:30.122Z (about 23 hours ago)
- Topics: api, blessed, cli, deepl, deeplx, google-translate, javascript, linux, macos, mymemory, nodejs, npm, npm-module, npm-package, reverso, translate, translation, translator, tui, windows
- Language: JavaScript
- Homepage: https://npmjs.com/package/multranslate
- Size: 1.16 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
multranslate
English | РусскийTerminal user interface based on the [Blessed](https://github.com/chjj/blessed) library for simultaneous text translation using multiple translation sources. All sources do not require an access token or any settings. Supports **automatic detection of source and target languages** between English and Russian at the code level.
![Example](/example.jpg)
## 📚 Translation providers
- Google via free and unlimited [API](https://github.com/matheuss/google-translate-api) using [serverless](https://github.com/olavoparno/translate-serverless-vercel) hosted on Vercel.
- [DeepLX](https://github.com/OwO-Network/DeepLX) - free [DeepL](https://deepl.com) API using [serverless](https://github.com/LegendLeo/deeplx-serverless) hosted on [Vercel](https://github.com/bropines/Deeplx-vercel).
- [MyMemory](https://mymemory.translated.net/doc/spec.php) - free and open api (usage is limited to 5000 chars/day).
- [Reverso](https://www.reverso.net) - free api (does not contain official documentation, request was received from official site through DevTools).> ⚠ **Reverso** does not support working via **Axios** (error: `Invalid header value char`), **Fetch** is used instead.
## 🚀 Installation
Use the [npm](https://www.npmjs.com/package/multranslate) package manager:
```shell
npm install -g multranslate
```Run the application:
```shell
multranslate
```## 🔧 Build
Clone the repository:
```shell
git clone https://github.com/Lifailon/multranslate
cd multranslate
```Run the application:
```shell
npm start
```To debug the interface:
```shell
npm run dev
```## 💡 Text buffer
The Blessed library is deprecated (no longer supported) and has a number of technical limitations, such as cursor navigation in a text input field. For this reason, a mechanism for managing input text via text buffer has been implemented, which allows using a custom cursor for navigation using keyboard arrows and automatic scrolling for swiping.
If you plan to use this library for similar tasks where text input is required, then add `class TextBuffer` and control of `keypress` shortcuts to your code via `inputBox.on()`.
## ⌨ Hotkeys
- `Enter` - is used each time to translate the text simultaneously with moving to a new line.
- `Shift+<⬆/⬇>` - simultaneous scrolling of all output panels.
- `Ctrl+` - copying translation results from output forms to the clipboard (for each translator, the key combination is indicated in brackets), and the selected form will change its color to green.
- `Ctrl+V` - paste text from the clipboard (defined at the code level).
- `Ctrl+C` - clear the text input field.
- `Ctrl+<⬆/⬇>` - scrolling the text input panel without navigation.
- `Ctrl+<⬅/➡>` - quick cursor navigation through phrases.
- `Ctrl+DEL` - delete the phrase before the cursor.
- `Ctrl+` - move the cursor to the beginning or end of text input.
- `Escape` - exit the program.