Translate Shell. Перевод текста по hotkey.

Изображение пользователя Sabalt.

Пакет, точнее скрипт, Translate Shell переводит текст с помощью онлайн переводчиков Google Translate (default), Bing Translator, Yandex.Translate, DeepL Translator, Apertium.
Возможности обширные. Подробности можно посмотреть на оф. сайте (github), его же Wiki и в man-e.
Работает переводчик в командной строке, я же хочу немного упростить его использование.
В итоге - вывод перевода через kdialog по горячим главишам. Все достаточно просто на самом деле и без всяких вам zenity и notify-send.

  • 1. Скачиваем скрипт
  • В свежих дистрибутивах версия Translate Shell 0.9.5 и 0.9.6. Поэтому просто$ sudo apt install translate-shell
    В 16.04 (а я использую KDE Neon) версия 0.9.2, поэтому загружаем с git (0.9.6)
    $ wget git.io/trans
    $ chmod +x ./trans
    $ sudo cp trans /usr/bin/

    Из обязательных зависимостей - gawk. И, как не удивительно, xsel (!).
    Рекомендуется еще curl, что-либо из mplayer, mpv, mpg123, eSpeak, что-либо из less, more, most, еще rlwrap, и aspell или hunspell

  • 2. Проверяем скрипт
  • $ trans artful aardvark
    Краткий вывод:$ trans -b artful aardvark
    Послушать в оригинале:$ trans -sp -b artful aardvark
    Не буду рассматривать все возможности.

  • 3. Пишем скрипт на bash
  • Создаем в любом месте файл
    touch /home/$USER/.translate_textbox
    со следующим содержимым:
    #!/usr/bin/env bash
    a=`xsel -o | trans :ru -no-ansi -b`
    echo -e "$a" > /tmp/kdetrans
    kdialog 500 300 --title 'Перевод'  --textbox  /tmp/kdetrans

    Назначаем исполняемым$ chmod +x /home/$USER/.translate_textbox

  • 4. Назначаем hotkey
  • Параметры системы - Комбинации клавиш - Специальные действия - Изменить - Новый - Глобальная комбинация клавиш - Команда или адрес.
    Имя: любое (tlanslate box).
    Активация: жмем комбинацию (у меня Meta+`)
    Действие: /home/ЮЗЕР/.translate_textbox (выбрать файл через проводник)
    Применить.

  • 5. Проверяем результат
  • Выделить любой текст на любом языке, в любом приложении, нажать комбинацию клавиш.
    Можно выделять текст. Будет висеть, пока не закроете.

  • Плюшки
  • Тоже самое, но в popup (сообщение в системном трее)
    Пропадает через некоторое время, но оставляет запись в системных уведомлениях

    Почти тоже самое, но можно послушать оригинал.
    Если не нравится женский голос, можно изменить на мужской от Яндекса.
    Я же говорил, ничего сложного )

    Комментарии (36)

    +2
    lord_i - 18 Февраль, 2018 - 18:41
    Изображение пользователя lord_i.

    Давно хотел сделать, руки не доходили. Огромное спасибо!!!

    ЗЫ Шара таки есть в жизни :)

    0
    kot040188 - 19 Февраль, 2018 - 23:40
    Изображение пользователя kot040188.

    Раньше, в четвёртых кедах был плазмоид: нажимаешь на кнопочку на панели и выезжает окошко с переводом выделенного текста. Также можно было набить текст руками. Вот бы его возродить. Есть конечно куча расширений для хромых, но они работают только внутри хромых и не влазят в панель расширений…

    0
    xxx8xxx - 20 Февраль, 2018 - 00:29

    Помогите все это сделать на manjaro kde. все сделал как написано, но не работает. не появляется окно с переводом и в папке tmp нет файла kdetrans

    0
    Sabalt - 20 Февраль, 2018 - 00:31
    Изображение пользователя Sabalt.

    Файл скрипта не забыли исполняемым сделать?

    0
    xxx8xxx - 20 Февраль, 2018 - 00:53

    нет. все сделал по пунктам. проблема в файле скрипта. команда kdialog работает. а вот первые две команды не знаю. может пролема в создании файла kdetrans.

    0
    Sabalt - 20 Февраль, 2018 - 01:17
    Изображение пользователя Sabalt.

    В терминале пробуйте.
    $ /home/где_там_ваш_файл_лежит/.translate_textbox
    И все сразу станет понятно.
    Просто trans как работает в терминале?
    Откройте вручную файл /tmp/kdetrans.
    Все эти скрипты - просто набор команд. Почти каждую можно посмотреть в терминале.
    kdialog --msgbox "Не бойтесь экспериментировать."

    0
    xxx8xxx - 20 Февраль, 2018 - 08:46

    если в терминале запустить, то все отрабатывает нормально, только ругается что нет text-to-speech plug-in.

    0
    Sabalt - 20 Февраль, 2018 - 10:53
    Изображение пользователя Sabalt.

    Попробуйте на эту же комбинацию клавиш что-то другое назначить, проверить. В терминале-то если все отрабатывает.

    0
    xxx8xxx - 20 Февраль, 2018 - 22:30

    не работает hotkey. что посоветуете?

    0
    Sabalt - 21 Февраль, 2018 - 00:08
    Изображение пользователя Sabalt.

    Посоветую сначала рассказать подробнее.
    Какая-то конкретная комбинация клавиш? Вообще ни одна? Систему даже не знаем. Как настраивали тоже.
    Лучше все-таки в отдельное обсуждение вынести на форуме. Опишете все, и коллективным разумом поможем.

    0
    Fierta - 20 Февраль, 2018 - 02:08
    Изображение пользователя Fierta.

    Может быть проблема в отсутствии этого пакета?
    sudo apt install xsel

    0
    xxx8xxx - 20 Февраль, 2018 - 08:46

    установлено

    0
    ozim - 10 Март, 2018 - 23:53

    ребята, кто может помочь подобрать корректную сборку curl функции перевода на PHP? у меня каждый раз требует каптчу :( если бы хоть раз в 10 запросов еще ничего
    код

    строка
    http://translate.google.ru/translate_a/t?client=x&text=Поиск&hl=ru&sl=ru&tl=uk
    каждый раз редиректит на каптчу. каких ему заголовков не хватает?)
    +2
    Sabalt - 11 Март, 2018 - 02:20
    Изображение пользователя Sabalt.

    Вот сейчас прям вообще мимо настрелял )
    Ну на кой в этой теме решать этот вопрос?
    Совсем не сложно создать новую тему.
    И Вам лучше, и людям, которые зайдут сюда просто за простенькой переводилкой, спокойнее.

    0
    ozim - 17 Март, 2018 - 19:56

    просто для меня этот вопрос стал продолжением этой темы. зная что гугл закрыл публичный апи, я задался вопросом, как же переводит этот скрипт. нарыл такой вариант, по которому гугл дает перевод, но часто шлет на каптчу, если не с браузера.

    +1
    rewuxiin - 20 Март, 2018 - 14:44

    да это же просто шедевральный ман. то чего мне дико не хватало!

    0
    AlexBKost - 4 Май, 2018 - 15:25

    Sabalt, не могу разобраться чего не хватает. Kubuntu 18.04 - устанавливал translate-shell (0.9.6.6-1) из родного репозитория, по зависимостям подтянулись gawk (1:4.1.4+dfsg-1build1), libfribidi-bin (0.19.7-2), rlwrap (0.43-1). Настроил по инструкции, проверил по пункту 2. Проверяем скрипт - работает. А вот в окне Перевод - KDialog по hotkey пусто - ничего нет. Куда копать?

    0
    Sabalt - 11 Май, 2018 - 19:31
    Изображение пользователя Sabalt.

    Извини, был в командировке. Только сейчас до любимого сайта добрался ))
    Традиционно, запускай скрипт из терминала. Сразу все косяки вылезут.
    Имею ввиду скрипт, который с KDialog.

    0
    AlexBKost - 11 Май, 2018 - 22:14

    Командировки это хорошо, главное есть куда вернуться. Только я не понял, что и как запускать в терминале, чтобы косяки полезли.

    +1
    Sabalt - 12 Май, 2018 - 23:51
    Изображение пользователя Sabalt.

    Выделить текст. Открыть терминал, перейти в директорию, где лежит файл моего скрипта. Набрать ./textbox.sh (или как он у тебя называется) и нажать ввод. Не комбинацию клавиш (!). И смотреть вывод. Ну и сюда пульнуть, если что не понятно будет.

    +1
    AlexBKost - 13 Май, 2018 - 15:50

    Благодарю, разобрался. Не хватало xsel из второй строки скрипта. Плюсую в два места.

    +1
    Sabalt - 13 Май, 2018 - 20:37
    Изображение пользователя Sabalt.

    Не хватало xsel, чуднО ))
    Ну и гуд!

    0
    ozim - 26 Январь, 2019 - 18:23

    уже не работает :(
    работает, каким то чудом снесся xsel, установил заработало)

    0
    AlexBKost - 27 Январь, 2019 - 01:22

    ozim, давайте выражаться понятнее для присутствующих - работает без xsel или после переустановки xsel?

    0
    ozim - 27 Январь, 2019 - 22:03

    перестало работать с диалоговым окном, глянул в консоли - ругается на отсутствие пакета xsel (без понятия куда он делся, раньше ж был явно), установил его - заработало.

    +4
    AlexBKost - 12 Май, 2019 - 16:27

    Вчера возникла острая необходимость реализовать этот очень полезный сервис на Kubuntu 19.10. Так вы не поверите - в репозитории не оказалось пакета translate-shell, но подошёл из 19.04, установленный через с QApt. Зависимые пакеты подтянулись сами, кроме xsel - пришлось добавить вручную.

    Спасибо автору темы ещё раз.

    0
    AlexBKost - 14 Май, 2019 - 19:29

    Не перестаю удивляться: только что на 19.10 обновился translate-shell 0.9.6.7-1=>0.9.6.9-1. Прикол в том, что второго дня его в репах не было совсем, а 0.9.6.9-1 имеет дату 26.12.2018. Откуда он сегодня взялся?

    Ну, хорошо, пусть и так!

    0
    Sabalt - 14 Май, 2019 - 21:45
    Изображение пользователя Sabalt.

    Git наше всё ))

    0
    AlexBKost - 14 Май, 2019 - 23:23

    Так оттуда самому собирать надо, а я уже "старый" стал - ленивый.

    0
    Гость - 14 Июнь, 2019 - 15:30

    Все работает прекрасно, но не везде (в программах от Jet Brains нет реакции).

    0
    Sabalt - 29 Июнь, 2019 - 11:57
    Изображение пользователя Sabalt.

    Скорее всего хоткей дублируется.

    0
    AlexBKost - 29 Октябрь, 2019 - 21:12

    Сегодня завел Translate Shell на "тестируемую" Kubuntu 20.04. Версия пакета translate-shell поднялась до 0.9.6.11-1, а пакет xsel всё также не желает устанавливаться автоматически, в отличие от остальных по зависимостям.

    0
    ozim - 6 Ноябрь, 2019 - 20:15

    не заморачивайтесь, 4 дек гугл закрывает translate.google.com а скрипт работает через него.
    пардон гоню, закрывается сервис "инструменты переводчика", а не гугл переводчик

    0
    Sabalt - 7 Ноябрь, 2019 - 20:16
    Изображение пользователя Sabalt.

    Так и не должен.
    xsel - это утилита для работы с буфером обмена. К translate-shell не имеет отношения, а к скрипту имеет.

    0
    AlexBKost - 7 Ноябрь, 2019 - 20:20

    Главное - работает, а то ozim чуть не перепугал всех.

    0
    AlexBKost - 22 Май, 2022 - 21:02

    Хочу поделиться с вами своей нежданной радостью, мне удалось запустить вручную Translate Shell на Kubuntu 12.04. Прикол в том, что пакет translate-shell не предлагается на 12.04, совсем.

    Я понимаю, что про 12.04 никого уже не интересует, но на нашей любимой Kubuntu возможно впихнуть невпихуемое даже 10 лет спустя.

    Sabalt, большой привет и наилучшие пожелания. Без этой инструкции у меня ничего бы не получилось.

    Отправить комментарий

    CAPTCHA на основе изображений
    Введите цифры