- Скрипт перевода текста (Google, Yandex) с определением исходного языка
- 🎓 Лучшие переводчики в командной строке для Linux
- 1. DeepL Translator CLI
- Установка DeepL Translator CLI в Linux
- Примеры использования DeepL
- 2. Translate Shell
- Установка Translate Shell в Linux
- Яндекс.переводчик для Linux на Python+GTK3
- Перевод любого выделенного текста с помощью горячих клавиш и уведомлений
- Установка и настройка скрипта перевода выделенного текста
- Дополнительно: изменение скрипта «перевод выделенного текста»
- Перевод выделенного текста из любой программы на linux
Скрипт перевода текста (Google, Yandex) с определением исходного языка
Предлагаю вашему вниманию небольшой скрипт перевода текста через системы переводов Google и Yandex на различные языки с автоопределением исходного языка. Данный скрипт разрабатывался для удобного быстрого перевода выделенного текста по хоткеям.
Результат:
Собственно сам скрипт:
Запуск скрипта производится следующим образом:
# script.sh язык
примеры:
# scipt.sh ru
# script.sh en
Для включения возможности перевода через яндекс необходимо получить API ключ по ссылке api.yandex.ru/key/form.xml?service=trnsl и назначить его переменной ykey.
Включать или отключать соответствующие сервисы поиска можно через переменные google_enable и yandex_enable.
Переменные window_width и window_height управляют размерами итогового окна.
После выполнения скрипта, в окошке с результатом перевода можно нажать «ОК», в результате чего будет выполнен переход на сайт переводчика google с заполненным текстом для перевода.
Пример назначенных хоткеев через xbindkeys (
/.xbindkeysrc):
«2kseltr.sh ru»
Mod4 + r
«2kseltr.sh en»
Mod4 + e
«2kseltr.sh th»
Mod4 + t
«2ksearchya.sh»
Для работы скрипта должны быть установлены следующие программы:
xsel
zenity
google-translate-cli
Уставовка данных программ в Arch Linux:
pacman -Sy xsel zenity
yaourt -S google-translate-cli-git
Источник
🎓 Лучшие переводчики в командной строке для Linux
Важность приложений для языкового перевода невозможно переоценить, особенно для тех, кто много путешествует или общается с людьми, которые не говорят на одном языке на регулярной основе.
Сегодня я представляю вам лучшие инструменты перевода на основе командной строки для Linux.
1. DeepL Translator CLI
DeepL Translator Cli – бесплатный переводчик командной строки с открытым исходным кодом, использующий передовые методы машинного обучения, позволяющие пользователям переводить текст между языками, а также определять язык входного текста.
Он работает на DeepL, немецкой технологической компании и выпущен под лицензией MIT.
Поддерживаемые языки включают английский (EN), немецкий (DE), французский (FR), итальянский (IT), голландский (NL), испанский (ES), русский, португальский и польский (PL). бесплатно DeepL предлагает подписные планы для заинтересованных пользователей.
Установка DeepL Translator CLI в Linux
Чтобы установить инструмент командной строки DeepL Translator, сначала необходимо установить последнюю версию Node.js в свой дистрибутив Linux.
Затем установите менеджер зависимостей пакетов Yarn с помощью репозитория пакетов Debian в дистрибутиве Debian и Ubuntu с помощью следующих команд.
В дистрибутивах CentOS, Fedora и RHEL вы можете установить Yarn через репозиторий пакетов RPM.
Теперь установите инструмент командной строки DeepL Translator с помощью следующей команды.
Проверьте состояние установки, проверив версию DeepL.
DeepL работает, совершая вызовы API на главном веб-сайте deepl.com, поэтому на данный момент вам необходимо быть в сети, чтобы использовать его.
По сообщениям, он работает на суперкомпьютере, способном к 5,1 petaFLOPS – достаточной скорости для быстрого обнаружения и перевода языков.
Примеры использования DeepL
2. Translate Shell
Translate Shell (ранее Google Translate CLI) – бесплатный инструмент с открытым исходным кодом для перевода с командной строки, работающий на Google Translate, Яндекс Переводчике, Apertium и Bing Translator.
Он доступен для большинства POSIX-совместимых систем, включая Windows (через Cygwin, WSL или MSYS2), GNU / Linux, macOS и BSD.
Translate Shell позволяет пользователям использовать его для простых переводов или в качестве интерактивной оболочки.
Для простых переводов Translate Shell по умолчанию предоставляет подробную информацию о переведенном тексте, если только это не сделано, чтобы исключить детали с помощью ключевого слова, кратко.
При использовании в качестве интерактивной оболочки текст будет переводиться по мере их ввода построчно. Например,
Установка Translate Shell в Linux
Мой рекомендуемый метод загрузки – взять отсюда автономный исполняемый файл, поместить его в свой PATH и выполнить следующие команды:
Источник
Яндекс.переводчик для Linux на Python+GTK3
Довольно давно возникла необходимость в мультиязычном онлайн переводчике при закрытом браузере.
Нет, так то я и словарем в «особо тяжелых» случаях пользоваться не брезгую, но иногда приходится читать немаленький текст, и не все слова я знаю, как следствие теряется контекст.
Вначале был translate-shell.
Translate-shell вещь достаточно удобная, особненно, если пишешь, допустим, в Vi/vim. Переключился в соседнюю консоль и переводи.
Ключи простейшие и запоминаются легко.
Но этого как обычно было мало. Захотелось графики.
Работа в SublimeText и Zeal несколько удобней, нежели голая консоль.
Хм… Подумал-подумал, и решил прикрутить переводчик на горячую клавишу.
Выбор пал на gxmessage. Zenity меня не устроил, уж и не помню почему.
Был написан код:
И назначен на Ctrl+1. В IceWm это легко. Правим $HOME/.icewm/keys
Некоторое время меня это устраивало. На «контрол+1» с английского, «контрол+2» на английский. Хорошо.
Но тут translate-shell начал давать сбои.
Не знаю, что произошло у разрабов, но меня это совсем огорчило.
Я решил, пора, давно на питоне не писал.
Недолгие поиски в гугл привели меня к Yandex.API, Python и GTK+ 3 в виде модуля gi.
Почему gi, ведь обычно писал на PyQt5? Он на моей машине работает значительно быстрее. Машина не новая, памяти тоже(по современным меркам) не ахти.
Модуль GTK+ 3 для python был для меня вновинку. Целый вечер разбирался с синтаксисом на сайтах раз, два и три.
В итоге имею автопереводчик на горячей клавише.
Источник
Перевод любого выделенного текста с помощью горячих клавиш и уведомлений
Недавно я натолкнулся на старый небольшой интересный скрипт, позволяющий переводить любой выделенный текст. Нужно всего лишь выделить текст, неважно, будь то в браузере, LibreOffice или в документе PDF и нажать на клавиатуре определенное сочетание клавиш — и вуаля! — перевод выделенного текста появится в уведомлении на рабочем столе.
Исходный скрипт, написанный в 2012 году, к сожалению, уже не работает, однако ниже представлена его исправленная, работоспособная версия.
По-настоящему полезным этот скрипт делает то, что вы можете получить перевод любого выделенного текста, в браузере, документе ODT или PDF, терминале и т. д. и для его выполнения вы можете назначить любое удобное вам сочетание клавиш.
Скрипт отлично работает при переводе отдельных слов или небольших фраз, однако не ждите от него хорошего перевода целой веб-страницы, всё же для этого есть другие инструменты.
Есть и другие минусы. Если Google не сможет распознать язык оригинала, то будет возвращена ошибка, таким образом текст переведён не будет. Кроме того, естественно, для работы скрипта необходимо соединение с интернетом.
Несмотря на это, скрипт может быть весьма и весьма полезен в самых разных ситуациях. После его установки и настройки вы заметите, насколько просто и быстро можно переводить незнакомые вам фразы с французского, английского, испанского, итальянского и любого другого языка, поддерживаемого Google Translate.
Установка и настройка скрипта перевода выделенного текста
- Для использования скрипта вначале нужно установить пакеты libnotify-bin (благодаря ему скрипт сможет отображать уведомления на рабочем столе), wget (для получения перевода от Google) и xsel (нужен для извлечения выделенного текста). В Ubuntu, Linux Mint, и т. п. вы можете установить эти пакеты с помощью команды в терминале:
- После установки скопируйте код скрипта:
и вставьте его в новый файл — давайте назовём его notitrans (на самом деле вы можете обозвать его как пожелаете, но далее будет использоваться именно это имя).
В тексте скрипта, приведенном выше, замените «tl=en» на обозначение языка, в котором вы хотели бы получать результат перевода, например «tl=ru» для русского языка, «tl=fr» для французского и т. д. Теперь сохраните файл в домашнем каталоге и сделайте его исполняемым с помощью следующей команды:
- Переместите скрипт в каталог, содержащейся в переменной $PATH — например, для перемещения скрипта в каталог /usr/local/bin/ , воспользуйтесь следующей командой:
- Для использования скрипта необходимо, чтобы он выполнялся по какому-либо сочетанию клавиш. Необходимые для этого действия будут зависеть от того, какое окружение рабочего стола вы используете.
В GNOME (и Unity) это можно сделать перейдя в System Settings > Keyboard > Shortcuts > Custom Shortcuts и нажав «+» для добавления нового сочетания клавиш. Введите любое название нового пользовательского сочетания клавиш и notitrans в качестве команды для выполнения:
Назначьте новой команде сочетание клавиш, щёлкнув на ней и нажав выбранные вами клавиши на клавиатуре. Убедитесь в том, что это сочетание клавиш уже не занято!
Дополнительно: изменение скрипта «перевод выделенного текста»
Приведенный выше скрипт очень легко изменить для того, чтобы он лучше соответствовал вашим нуждам. Далее приводится несколько изменений, которые вы можете взять за основу и изменять дальше сами. Для использования скриптов, приведенных ниже, выполните те же действия, как и для «оригинального» скрипта (включая изменение кода языка en на требуемый вам язык), но не копируйте код скрипта из второго шага, вместо этого, воспользуйтесь кодом, приведенным ниже.
Отображение перевода с помощью Zenity (позволяет скопировать текст), вместо использования уведомлений рабочего стола:
Для того, чтобы этот вариант работал, в системе должен быть установлен пакет zenity. Чтобы установить его в Debian/Ubuntu, используйте следующую команду:
Отображение перевода в уведомлении рабочего стола и автоматическое копирование перевода в буфер обмена:
Для этого варианта необходим пакет xclip. В Debian/Ubuntu установить его можно с помощью команды:
Источник
Перевод выделенного текста из любой программы на linux
На прошлой недели я наткнулся на программу для windows, которая использовала для перевода текста гугл транслейт. Достаточно выделить текст в любом окне, нажать комбинацию клавиш и перевод готов (P.S.: эту программу можно найти на dicter.ru). Принцип работы показался очень простым и я решил на выходных написать свой собственный скрипт. Однако меня опередили. В конце недели выложили в сеть скрипт, который умеет сам определять язык исходного текста и переводить его на русский (или любой другой язык), используя переводчик гугла, а результат появляется во всплывающем уведомлении. Так что эта статья будет просто пересказ статьи с хабра ( этой ) с небольшими дополнениями и изменениями.
В начале установим необходимый софт, что бы всё работало:
Вот и всё. Так же нам понадобится программа для отправки уведомлений… В гном это libnotify-bin (уже установлена по умолчанию… обычно), а в kde — kdialog… и она тоже должна быть изначально.
Затем создаём текстовый документ в любом удобном для себя месте (лично мне удобней в папке
/bin), и помещаем в него следующий текст…
Данный вариант рассчитан на gnome (unity и всякие xfce тоже подходят) пользователей:
KDE вариант будет выглядеть так:
KDE вариант не тестировал, так что возможно он не совсем точен.
Оригинальный скрипт, который использован в статье на хабре выглядит так:
Во всех трёх вариантах следует обратить внимание на «sl=auto&tl=ru». Здесь «auto» обозначает, что язык исходного текста гугл будет пытаться определить сам, а «ru» отвечает за язык полученного перевода. Если вам нужен, например, английский, то поставьте «en» за место «ru».
Мой вариант отличается тем, что использует xclip заместо xsel, что позволяет загонять перевод в буфер обмена (т.е. появляется и уведомление и он же будет у вас в буфере обмена… удобно если нужно кому-то его отправить).
Так же первый вариант не показывает оригинальный текст во всплывающем уведомлении. Имхо, это никому не нужно.
Когда вставите понравившийся вам код, то не забудьте сохранить файл и сделать его исполняемым. Это можно сделать в его свойствах или выполнив команду:
Остаётся привязать его к комбинации клавиш. Для этого можно воспользоваться программой xbindkeys (узнал о ней из оригинальной статьи). Или воспользоваться стандартными методами самой системы. в mint и ubuntu — это «клавиатура».
Как видно, я назначил комбинацию — Alt+A.
Теперь достаточно выделить какой-либо фрагмент текста и нажать нужную комбинацию и перевод не заставит себя долго ждать.
Так же перевод поместился и в буфер обмена и его можно достать, нажав ctrl+c. А само уведомление будет висеть, пока по нему не кликнешь. Это происходит благодаря флагу «-u critical». Если не нравится, то можно его стереть.
Советую иногда поглядывать на комментарии к оригинальной статье . Там уже появились умельцы, которые портировали скрипт на питон… имхо это уже лишнее, но может кроме питона ещё что-нибудь интересное прикрутят.
Источник