Скрипт переводчик для 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 – достаточной скорости для быстрого обнаружения и перевода языков.

Читайте также:  Fsck exited with status code 4 astra linux

Примеры использования 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, терминале и т. д. и для его выполнения вы можете назначить любое удобное вам сочетание клавиш.

Читайте также:  Как виртуальную создать загрузочную флешку windows 10

Скрипт отлично работает при переводе отдельных слов или небольших фраз, однако не ждите от него хорошего перевода целой веб-страницы, всё же для этого есть другие инструменты.

Есть и другие минусы. Если Google не сможет распознать язык оригинала, то будет возвращена ошибка, таким образом текст переведён не будет. Кроме того, естественно, для работы скрипта необходимо соединение с интернетом.

Несмотря на это, скрипт может быть весьма и весьма полезен в самых разных ситуациях. После его установки и настройки вы заметите, насколько просто и быстро можно переводить незнакомые вам фразы с французского, английского, испанского, итальянского и любого другого языка, поддерживаемого Google Translate.

Установка и настройка скрипта перевода выделенного текста

  • Для использования скрипта вначале нужно установить пакеты libnotify-bin (благодаря ему скрипт сможет отображать уведомления на рабочем столе), wget (для получения перевода от Google) и xsel (нужен для извлечения выделенного текста). В Ubuntu, Linux Mint, и т. п. вы можете установить эти пакеты с помощью команды в терминале:
  • После установки скопируйте код скрипта:

и вставьте его в новый файл — давайте назовём его notitrans (на самом деле вы можете обозвать его как пожелаете, но далее будет использоваться именно это имя).
В тексте скрипта, приведенном выше, замените «tl=en» на обозначение языка, в котором вы хотели бы получать результат перевода, например «tl=ru» для русского языка, «tl=fr» для французского и т. д. Теперь сохраните файл в домашнем каталоге и сделайте его исполняемым с помощью следующей команды:

  • Переместите скрипт в каталог, содержащейся в переменной $PATH — например, для перемещения скрипта в каталог /usr/local/bin/ , воспользуйтесь следующей командой:
  1. Для использования скрипта необходимо, чтобы он выполнялся по какому-либо сочетанию клавиш. Необходимые для этого действия будут зависеть от того, какое окружение рабочего стола вы используете.

В 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». Если не нравится, то можно его стереть.

Советую иногда поглядывать на комментарии к оригинальной статье . Там уже появились умельцы, которые портировали скрипт на питон… имхо это уже лишнее, но может кроме питона ещё что-нибудь интересное прикрутят.

Источник

Оцените статью