English | Русский
Терминальный пользовательский интерфейс (TUI) на базе библиотеки Blessed для одновременного перевода текста с использованием нескольких источников перевода. Все источники не требуют токена доступа или других настроек. Поддерживает автоматическое определение исходного и целевого языка на уровне кода между английским и любым из поддерживаемых языков (русский по умолчанию), а также доступ к истории переводов через SQLite (до 500 запросов, после чего применяется автоматическая чистка старых значений из истории).
- Google - бесплатный и безлимитный API с использованием serverless размещенный на Vercel. Доступно для перевода более 5000 символов.
- DeepL - бесплатный API через DeepLX с использованием serverless размещенный на Vercel. Присутствуют ограничения на частое количество запросов перевода, может иметь ограничения при использование большого количества символов (официальное ограничение в 5000 символов на запрос).
- Reverso - самый стабильный, бесплатный и без ограничений на количество символов (версия на сайте ограничена 2000 символам и 900 через приложение, через
API
возможно получить до 8000). Не содержит официальной документации, запрос был получен с официального сайта через DevTools. - MyMemory - бесплатный и открытый API (ограничение в 500 символов на запрос). Поддерживает до 3 вариантов ответа для коротких запросов.
⚠ Reverso не поддерживает работу через Axios (ошибка:
Invalid header value char
), вместо этого используется Fetch.
Используйте менеджер пакетов npm:
npm install -g multranslate
Запустите приложение:
multranslate
Получите справку:
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
Клонируйте репозиторий:
git clone https://github.com/Lifailon/multranslate
cd multranslate
Запустите приложения:
npm start
Вы можете изменить язык, для автоматического определения языка между английским и любым из тех, что представлен ниже в таблице:
Параметр | Язык |
---|---|
ru | Русский (по умолчанию) |
ja | Японский |
zh | Китайский |
ko | Корейский |
ar | Арабский |
tr | Турецкий |
uk | Украинский |
sk | Словацкий |
pl | Польский |
de | Немецкий |
fr | Французский |
it | Итальянский |
es | Испанский |
pt | Португальский |
el | Греческий |
hu | Венгерский |
nl | Нидерландский |
sv | Шведский |
ro | Румынский |
cs | Чешский |
da | Датский |
Если кого-то языка нет в списке или у вас возникли проблемы с переводом, откройте запрос в разделе Issues.
Вы также можете использовать любой из переводчиков по отдельности, указав соответствующий параметр при запуске:
multranslate --translator Google --language tr
|
multranslate --translator DeepL --language de
|
multranslate --translator Reverso --language it
|
multranslate --translator MyMemory --language es
|
-
Enter
: используется каждый раз для перевода текста одновременно с переносом на новую строку. -
Ctrl+<Q/W/E/R>
: копирования результатов перевода из форм вывода в буфер обмена (для каждого переводчика комбинация клавиш указана в скобках), при этом выбранная форма изменит свой цвет на зеленый. -
Ctrl+V
: вставка текста из буфера обмена (определено на уровне кода). -
Ctrl+Z
: Навигация по истории запросов на переводы с конца. -
Ctrl+X
: Навигация по истории переводов в обратном порядке. -
Shift+<⬆/⬇>
: одновременный скроллинг всех панелей вывода. -
Ctrl+<⬆/⬇>
: скроллинг панели ввода текста без навигации. -
Ctrl+<⬅/➡>
: быстрая навигация курсора через словосочетания. -
Ctrl+<A/D>
: перевести курсор к началу или концу ввода текста. -
Ctrl+Del
: удалить словосочетание перед курсором. -
Ctrl+C
: очистить поле ввода текста. -
Escape
: выход из программы.
Что бы получить справку по горячим клавишам, используйте комбинацию клавиш: Ctrl+S
Библиотека Blessed является устаревшей (более не поддерживается) и имеет ряд технических ограничений, например, отсутствует возможность навигации курсора в поле ввода текста. По этой причине был реализован механизм управления содержимым ввода через текстовый буфер, который позволяет использовать кастомный курсор для навигации с помощью стрелочек клавиатуры и автоматический скроллинг для пролистывания.
Если вы планируете использовать данную библиотеку для схожих задач где требуется ввод текста, то добавьте в свой код class TextBuffer
и управление корячими клавишами keypress
через inputBox.on()
.