Home

Awesome

<h2 align="center"> multranslate </h2> <p align="center"> <a href="https://www.npmjs.com/package/multranslate"><img title="GitHub License"src="https://img.shields.io/npm/v/multranslate?logo=npm&logoColor=red"></a> <a href="https://www.npmjs.com/package/multranslate"><img title="GitHub License"src="https://img.shields.io/github/languages/top/Lifailon/multranslate?logo=JavaScript&color=yellow"></a> <a href="https://github.com/Lifailon/multranslate/blob/rsa/LICENSE"><img title="GitHub License"src="https://img.shields.io/github/license/Lifailon/multranslate?logo=readme&logoColor=white&color=white"></a> </p> <h4 align="center"> <strong>English</strong> | <a href="README_RU.md">Русский</a> </h4>

A terminal user interface (TUI) based on the Blessed library for simultaneous text translation using multiple translation sources. All sources do not require an access token or other settings. Supports automatic source and target language definition at code level between English and any of the supported languages, as well as access to translation history via SQLite (up to 500 queries, after which the old values from history are automatically cleared).

interface

📚 Translation providers

Reverso does not support working via Axios (error: Invalid header value char), Fetch is used instead.

🚀 Install

Use the npm package manager:

npm install -g multranslate

Run the application:

multranslate

Get help:

multranslate --help

Usage: multranslate [options]

Cross-platform TUI for translating text in multiple translators simultaneously, with support for translation
history and automatic language detection.

Options:
  -V, --version            output the version number
  -l, --language <name>    select language: ru, ja, zh, ko, ar, tr, uk, sk, pl, de, fr, it, es, pt, el, hu, nl, sv,
                           ro, cs, da (default: "ru")
  -t, --translator <name>  select translator: all, Google, DeepL, Reverso, MyMemory (default: "all")
  -h, --help               display help for command

🔨 Build

Clone the repository:

git clone https://github.com/Lifailon/multranslate
cd multranslate

Run the application:

npm start

💬 Supported languages

You can change the language to automatically detect the language between English and any of those in the table below:

ParameterLanguage
ruRussian (default)
jaJapanese
zhChinese
koKorean
arArabic
trTurkish
ukUkrainian
skSlovak
plPolish
deGerman
frFrench
itItalian
esSpanish
ptPortuguese
elGreek
huHungarian
nlDutch
svSwedish
roRomanian
csCzech
daDanish

If a language is not on the list or if you have problems with translation, please open a request under Issues.

You can also use any of the translators individually by specifying the appropriate option at startup:

<table> <tr> <td><code>multranslate --translator Google --language tr</code> </td> <td><code>multranslate --translator DeepL --language de</code> </td> </tr> <tr> <td><img src=/image/google-fr.jpg width=600/></td> <td><img src=/image/deepl-de.jpg width=600/></td> </tr> <tr> <td><code>multranslate --translator Reverso --language it</code> </td> <td><code>multranslate --translator MyMemory --language es</code> </td> </tr> <tr> <td><img src=/image/reverso-it.jpg width=600/></td> <td><img src=/image/mymemory-es.jpg width=600/></td> </tr> </table>

⌨ Hotkeys

To get hotkey help, use the keyboard shortcut: Ctrl+S

interface

💡 Text buffer

The Blessed library is outdated (no longer supported) and has a number of technical limitations, such as not being able to navigate the cursor in the 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().