У пользователей Ubuntu часто возникает вопрос, чем же быстро перевести текст. Естественно, есть Google Translator, но не всегда удобно заходить на сайт, открывать там переводчик, в общем, выполнять для этого все необходимые действия. Бродя по просторам интернета, мне на глаза попалось очень интересное решение этой задачи.
В Ubuntu имеется очень простой и интересный интерфейс для отображения уведомлений из консоли notify-send, который находится в пакете ibnotify-bin. Пример использования: notify-send 'title' 'message'
, в результате получим следующее уведомление:
Для получения текущего выделения в X Window System используется утилита xsel.xsel -o
Выведет текущий selection в стандартный поток вывода.
Для начала нам нужно установить необходимые пакеты:
sudo apt-get install libnotify-bin xsel
Далее создаем файл seltr со следующим содержимым:
#!/usr/bin/env bash notify-send -u critical "$(xsel -o)" "$(wget -U "Mozilla/5.0" -qO - "http://translate.google.com/translate_a/t?client=t&text=$(xsel -o | sed "s/[\"'<>]//g")&sl=auto&tl=ru" | sed 's/\[\[\[\"//' | cut -d \" -f 1)"
-u critical
Служит для того, чтобы оповещение могло перекрывать любые окна.
Параметры запроса google translate:text=$(xsel -o | sed "s/[\"']//g")
→ исходный текст — текущий selection с вырезанными ' и ".sl=auto
→ автоопределение исходного языка.tl=ru
→ язык результата — русский.
Теперь делаем наш файл исполняемым:
sudo chmod 777 ./seltr && sudo mv ./seltr /usr/bin/
Завершающим этапом является назначение горячих клавиш на выполнение нашей команды. Я выбрал ctrl+alt+space, назначить комбинацию можно стандартными средствами, которые предоставляет ваше окружение рабочего стола или воспользовавшись утилитой xbindkeys. В Ubuntu с окружением Unity нужно зайти в Параметры системы -> Клавиатура -> Комбинации клавиш.
Давайте рассмотрим, как это выглядит в деле.
Выделяем любой текст в системе, нажимаем наши волшебные клавиши, и вот, что мы получаем:
Из минусов могу отметить только:
- Не работает без подключения к интернету.
- Нет возможности выделить текст перевода.
Проверенно в Unity, GNOME, Xfce, KDE