multranslate
Terminal user interface based on blessed library for translating text using multiple translation providers simultaneously. All sources do not require an access token or any settings. Supports automatic detection of the source and destination language between English and Russian.

Translation providers
- Google via free and unlimited API using serverless hosted on Vercel.
- DeepLX - free DeepL API using serverless hosted on Vercel.
- MyMemory - free and open api (usage is limited to 5000 chars/day).
- Reverso - free api (does not contain official documentation, request was received from official site through DevTools).
Installation
Use the npm package manager (stable version):
npm install -g multranslate
multranslate
Build:
Clone the repository:
git clone https://github.com/Lifailon/multranslate
cd multranslate
Running the application:
npm start
To build the executable, you can use pkg from Vercel.
Install the pkg package and use one command to build for all platforms:
npm install -g pkg
pkg .
Supports Windows, Linux and MacOS. The executable file already includes all dependencies for its operation and does not require installation of the node.js
platform.
Since the Reverso provider does not support working via Axios (error: Invalid header value char
), Fetch is used instead. The pkg tool supports node.js version 18 and higher, where Fetch is considered experimental, so on the first request after running the application in the input field you will get an error: The Fetch API is an experimental feature
.
Hotkeys
Using the up
and down
buttons you can scroll through all output panels at once.
The escape
button is used to clear the text input field, as well as to exit the program if the input field is already empty.
The blessed library has a number of limitations, so I was unable to implement cursor movement using the left and right arrows.
To capture all text in one of the output panels for copying, use the key combination Shift+Alt
when selecting text.
If you are using Windows Terminal, add a parameter in the settings.json
configuration file that will remove trailing spaces from text in a rectangular (block) selection when copying to the clipboard:
"trimBlockSelection": true
To paste text from the clipboard, use the keyboard shortcut Shift+Ctrl+V
or Ctrl+V
depending on the terminal you are using.