Последнее время приходится читать много текста на английском языке, поэтому достаточно удобно выделить непонятное слово и получить его перевод. Реализовал это с помощью яндекса(ключ можно получить по этой ссылке) для оконного менеджера ratpoison:
#!/bin/sh
yandex_key="ключ"
#получаем текст, выделенный мышкой, добавив опцию -b можно
#получить текст, находящийся в буфере обмена
text=`xsel -o`
#если строка пустая
if [ -z $text ]
then
#то нечего переводить
output="Нет слова для перевода"
#иначе
else
#удаляем некоторые символы - "'<>: и $, затем выделяем первое слово
#убрав | awk '{print $1}' - работаем со всем текстом, а не только с первым словом
text=`echo $text | sed "s/[\"\'<>:$]//g" | awk '{print $1}'`
#переводим в яндексе текст
translate_pre=`wget -qO - "https://translate.yandex.net/api/v1.5/tr.json/translate?key=$yandex_key&text=$text&lang=ru"`
#удаляем некоторые специальные символы из него
translate=`echo $translate_pre | sed 's/.*\[\"\(.*\)\"\].*/\1/'`
#заносим в переменную для вывода
output=$translate
fi
#выводим сообщение в ratpoison
ratpoison -c "echo Перевод $text: $output"
Использование перевода выделенного текста в стандартной Ubuntu 16.04
Установить программу xsel:
# apt-get install xsel
После чего скопировать текст скрипта в файл, к примеру ~/translate.sh и изменить последнюю строчку вывода в ratpoison на:
notify-send -u critical "Перевод: $text" "$output"