Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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.