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 (сообщение в системном трее)
    Пропадает через некоторое время, но оставляет запись в системных уведомлениях

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

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

    +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 из второй строки скрипта. Плюсую в два места.

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

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

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

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