JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q43451F
  • License MIT

Cross-platform TUI for translating text using multiple providers simultaneously and support automatic detection of the source and destination language

Package Exports

  • multranslate
  • multranslate/multranslate-custom-cursor.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (multranslate) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

multranslate

English | Русский

Terminal user interface based on the 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

📚 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).

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

🚀 Installation

Use the npm package manager:

npm install -g multranslate

Run the application:

multranslate

🔧 Build

Clone the repository:

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

Run the application:

npm start

To debug the interface:

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+<Q/W/E/R> - 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+<A/D> - move the cursor to the beginning or end of text input.

  • Escape - exit the program.