Хочу поделиться с вами своим лайфхаком.
В первую очередь он предназначен для людей, которым лень лезть в словарь всякий раз, когда они встречают незнакомое иностранное слово в тексте.
Я хочу рассказать, как получить перевод выделенного текста в виде оповещения рабочего стола.
У многих десктопных «словарей» есть функция для перевода выделения, которая как раз и предназначена для того, чтобы «не лазить в словарь», но почему-то у меня всегда были с ней проблемы: не переводит, когда нужно; переводит, когда не нужно и т.д.
Наверняка, многие из вас видели различные скрипты для использования google translate из консоли, но я считаю этот способ неудобным в большинстве случаев, не смотря на то, что предпочитаю CLI.
Я подумал, что неплохо было бы иметь возможность быстро переводить выделенный текст или слово и видеть результат, в виде оповещения рабочего стола.
Остаётся только совместить google translate cli + selections + notifications.
Очень простой интерфейс для отправки уведомлений из консоли предоставляет утилита notify-send, которую можно найти в пакете libnotify-bin. Пример:
Даст следующий результат
Для получения текущего выделения в X Window System используется утилита xsel.
Выведет текущий selection в стандартный поток вывода.
sudo apt-get install libnotify-bin xsel
Я уверен, что каждый знает, как устанавливать пакеты в своей системе, поэтому не привожу примеры.
Параметр
Параметры запроса google translate:
sudo chmod 777 ./seltr && sudo mv ./seltr /usr/bin/
Английский
Немецкий
Французский
Украинский
Китайский
+ Возможность переводить фрагменты текста.
+ Требуется минимальное количество действий для получения перевода.
+ Поддержка практически всех языков.
+ Отсутствие необходимости в установке отдельных словарей.
- Не работает без подключения к интернету.
- Нет возможности выделить текст перевода.
В первую очередь он предназначен для людей, которым лень лезть в словарь всякий раз, когда они встречают незнакомое иностранное слово в тексте.
Я хочу рассказать, как получить перевод выделенного текста в виде оповещения рабочего стола.
У многих десктопных «словарей» есть функция для перевода выделения, которая как раз и предназначена для того, чтобы «не лазить в словарь», но почему-то у меня всегда были с ней проблемы: не переводит, когда нужно; переводит, когда не нужно и т.д.
Наверняка, многие из вас видели различные скрипты для использования google translate из консоли, но я считаю этот способ неудобным в большинстве случаев, не смотря на то, что предпочитаю CLI.
Я подумал, что неплохо было бы иметь возможность быстро переводить выделенный текст или слово и видеть результат, в виде оповещения рабочего стола.
Остаётся только совместить google translate cli + selections + notifications.
Решение
Очень простой интерфейс для отправки уведомлений из консоли предоставляет утилита notify-send, которую можно найти в пакете libnotify-bin. Пример:
notify-send 'title' 'message'
Даст следующий результат
Для получения текущего выделения в X Window System используется утилита xsel.
xsel -o
Выведет текущий selection в стандартный поток вывода.
Шаг 1
Устанавливаем необходимые пакеты:sudo apt-get install libnotify-bin xsel
Я уверен, что каждый знает, как устанавливать пакеты в своей системе, поэтому не привожу примеры.
Шаг 2
Создаём файл с именем seltr и копируем в него следующие 2 строки:#!/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
→ язык результата — русский.Шаг 3
Делаем этот файл исполняемым и перемещаем его в /usr/bin/:sudo chmod 777 ./seltr && sudo mv ./seltr /usr/bin/
Шаг 4
Теперь остаётся назначить комбинацию клавиш на команду seltr(мой выбор — alt+5). Для этого можно воспользоваться стандартными сердствами, которые предоставляет ваша рабочая среда, либо использовать xbindkeys.Как это работает
- Выделяем какой-нибудь иностранный текст(на любом языке), в любом окне.
- Нажимаем alt+5.
- Получаем перевод.
Немного скриншотов
Английский
Немецкий
Французский
Украинский
Китайский
Плюсы и минусы
+ Возможность переводить фрагменты текста.
+ Требуется минимальное количество действий для получения перевода.
+ Поддержка практически всех языков.
+ Отсутствие необходимости в установке отдельных словарей.
- Не работает без подключения к интернету.
- Нет возможности выделить текст перевода.
*Проверенно в Unity, GNOME2, Xfce4, KDE4.