|
12 | 12 | <a href="README.md">English</a> | <strong>Русский</strong> |
13 | 13 | </h4> |
14 | 14 |
|
15 | | -Терминальный пользовательский интерфейс (TUI) на базе библиотеки [Blessed](https://github.com/chjj/blessed) для одновременного перевода текста с использованием нескольких источников перевода. Все источники не требуют токена доступа или каких-либо настроек. Поддерживает **автоматическое определение исходного и целевого языка** на уровне кода между английским и русским и доступ к **истории переводов** через [SQLite](https://github.com/WiseLibs/better-sqlite3). |
| 15 | +Терминальный пользовательский интерфейс (TUI) на базе библиотеки [Blessed](https://github.com/chjj/blessed) для одновременного перевода текста с использованием нескольких источников перевода. Все источники не требуют токена доступа или других настроек. Поддерживает **автоматическое определение исходного и целевого языка** на уровне кода между английским и русским (по умолчанию) и доступ к **истории переводов** через [SQLite](https://github.com/WiseLibs/better-sqlite3) (до 500 запросов, после чего применяется автоматическая чистка старых значений из истории). |
16 | 16 |
|
17 | 17 |  |
18 | 18 |
|
19 | 19 | ## 📚 Источники перевода |
20 | 20 |
|
21 | | -- Google через бесплатный и безлимитный [API](https://github.com/matheuss/google-translate-api) с использованием [serverless](https://github.com/olavoparno/translate-serverless-vercel), размещенный на Vercel. |
22 | | -- [DeepLX](https://github.com/OwO-Network/DeepLX) - бесплатный [DeepL](https://deepl.com) API с использованием [serverless](https://github.com/LegendLeo/deeplx-serverless), размещенный на [Vercel](https://github.com/bropines/Deeplx-vercel). |
23 | | -- [MyMemory](https://mymemory.translated.net/doc/spec.php) - бесплатный и открытый API (использование ограничено 5000 символами в день). |
24 | | -- [Reverso](https://www.reverso.net) - бесплатный API (не содержит официальной документации, запрос был получен с официального сайта через *DevTools*). |
| 21 | +- [Google](https://translate.google.com) - бесплатный и безлимитный [API](https://github.com/vitalets/google-translate-api) с использованием [serverless](https://github.com/olavoparno/translate-serverless-vercel) размещенный на Vercel. Доступно для перевода более 5000 символов. |
| 22 | +- [DeepL](https://www.deepl.com) - бесплатный API через [DeepLX](https://github.com/OwO-Network/DeepLX) с использованием [serverless](https://github.com/LegendLeo/deeplx-serverless) размещенный на [Vercel](https://github.com/bropines/Deeplx-vercel). Присутствуют ограничения на частое количество запросов перевода, может иметь ограничения при использование большого количества символов (официальное ограничение в 5000 символов на запрос). |
| 23 | +- [Reverso](https://www.reverso.net) - самый стабильный, бесплатный и без ограничений на количество символов (версия на сайте ограничена 2000 символам и 900 через приложение, через `API` возможно получить до 8000). Не содержит официальной документации, запрос был получен с официального сайта через *DevTools*. |
| 24 | +- [MyMemory](https://mymemory.translated.net/doc/spec.php) - бесплатный и открытый API (ограничение в 500 символов на запрос). Поддверживает до 3 вариантов ответа для коротких запросов. |
25 | 25 |
|
26 | | -> ⚠ **Reverso** не поддерживает работу через **Axios** (ошибка: `Invalid header value char`), вместо этого используется **Fetch**. |
| 26 | +> ⚠ **Reverso** не поддерживает работу через **Axios** (ошибка: `Invalid header value char`), вместо этого используется **Fetch**. По этой причине не получается упаковать пакет с помощью `pkg` без ошибок при запуске. |
27 | 27 |
|
28 | 28 | ## 🚀 Установка |
29 | 29 |
|
@@ -54,26 +54,20 @@ cd multranslate |
54 | 54 | npm start |
55 | 55 | ``` |
56 | 56 |
|
57 | | -Для отладки интерфейса: |
58 | | - |
59 | | -```shell |
60 | | -npm run dev |
61 | | -``` |
62 | | - |
63 | 57 | ## 💡 Текстовый буфер |
64 | 58 |
|
65 | | -Библиотека Blessed является устаревшей (более не поддерживается) и имеет ряд технических ограничений, например, навигация курсора в поле ввода текста. По этой причине был реализован механизм управления содержимым ввода через текстовый буфер, который позволяет использовать кастомный курсор для навигации с помощью стрелочек клавиатуры и автоматический скроллинг для пролистывания. |
| 59 | +Библиотека Blessed является устаревшей (более не поддерживается) и имеет ряд технических ограничений, например, отсутствует возможность навигации курсора в поле ввода текста. По этой причине был реализован механизм управления содержимым ввода через текстовый буфер, который позволяет использовать кастомный курсор для навигации с помощью стрелочек клавиатуры и автоматический скроллинг для пролистывания. |
66 | 60 |
|
67 | 61 | Если вы планируете использовать данную библиотеку для схожих задач где требуется ввод текста, то добавьте в свой код `class TextBuffer` и управление корячими клавишами `keypress` через `inputBox.on()`. |
68 | 62 |
|
69 | 63 | ## ⌨ Горячие клавиши |
70 | 64 |
|
71 | 65 | - `Enter`: используется каждый раз для перевода текста одновременно с переносом на новую строку. |
72 | 66 |
|
73 | | -- `Ctrl+V`: вставка текста из буфера обмена (определено на уровне кода). |
74 | | - |
75 | 67 | - `Ctrl+<Q/W/E/R>`: копирования результатов перевода из форм вывода в буфер обмена (для каждого переводчика комбинация клавиш указана в скобках), при этом выбранная форма изменит свой цвет на зеленый. |
76 | 68 |
|
| 69 | +- `Ctrl+V`: вставка текста из буфера обмена (определено на уровне кода). |
| 70 | + |
77 | 71 | - `Ctrl+Z`: Навигация по истории запросов на переводы с конца. |
78 | 72 |
|
79 | 73 | - `Ctrl+X`: Навигация по истории переводов в обратном порядке. |
|
0 commit comments