https://habrahabr.ru/post/137215/
В исходной статье скрипт для перевода из командной строки устарел (google блокирует подключения не из браузера), поэтому предлагается использовать translate-shell
.
- утилита для отправки уведомлений из командной строки
notify-send
- утилита для получения содержимого выделения
xsel
- GNU
awk
(gawk) 4.0 и выше curl
(скорее всего уже присутствует в системе)- Скрипт для перевода текста из командной строки
translate-shell
- Скрипт для перевода выделенного текста из командной строки
- Настройка комбинации клавиш для запуска скрипта из предыдущего пункта
sudo apt-get install -y libnotify-bin xsel gawk
awk --version
Если текущая версия awk меньше 4, то требуется обновить утилиту. Для Ubuntu 12.04 это можно сделать следующим образом:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:schot/gawk
sudo apt-get update
sudo apt-get install -y gawk
Репозиторий проекта: https://github.com/soimort/translate-shell Скрипт утилиты скачивается в домашнюю папку пользователя:
mkdir -p ~/scripts
cd ~/scripts
wget git.io/trans
chmod +x ./trans
~/scripts/trans -b :ru example
Результатом работы скрипта должен быть переовод слова example
(пример
)
Для получения текущего выделения в X Window System используется утилита xsel.
xsel -o
Данная команда выведет текущий selection в стандартный поток вывода.
Для перевода выделенного текста из командной строки необходимо создать скрипт ~/scripts/seltr
следущего содержания:
#!/usr/bin/env bash
SELECTED_TEXT=$(xsel -o)
TRANSLATED_TEXT=$(/home/miv/scripts/trans -b en:ru "${SELECTED_TEXT}")
notify-send -u critical "${SELECTED_TEXT}" "${TRANSLATED_TEXT}"
После создания необходимо установить права на запуск скрипта:
chmod a+x ~/scripts/seltr
Скрипт использует xsel
для получения текста из выделения, переводит его при помощи trans
и выводит в системное уведолмение при помощи notify-send
Примечание:
- В скрипте вместо вместо
en:ru
можно указать:ru
для автоматического определения исходного языка перевода
В Ubuntu это можно сделать из меню Параметры системы -> Клавиатура -> Вкладка "Комбинации клавиш" Необходимо добавить дополнительную комбинацию:
- Название: Translate selected text
- Команда:
/home/<USER_NAME>/scripts/seltr
(необходимо указать корректныйUSER_NAME
) - Комбинация клавиш:
Crtl+`
(любая удобная)
На данном шаге при выделении следующего текста:
- Text for translate
И нажатии Crtl+`
должно появляться системное уведомление:
- Текст для перевода
hello