Переводите любой выбранный текст с помощью комбинации клавиш и оповещений

google translate

Я недавно натолкнулся на интересный небольшой старый скрипт, который может переводить любой выбранный вами скрипт. После выбора текста, будь он выбран в веб-браузере, LibreOffice, PDF-просмотрщике или прочем приложении, после применения определённой комбинации клавиш его перевод отобразится в настольном оповещении.

Оригинальный скрипт, который был создан в 2012 году, больше не работает, но я смог исправить его и решил поделиться им с вами.

Скрипт делает особенно полезным тот факт, что он позволяет переводить любой текст, который может быть выбран, будь то часть веб-страницы, документа ODT или PDF, вывода терминала или что-то иное, к переводу легко получить доступ, просто используя заданную комбинацию клавиш.

Скрипт отлично подходит для перевода слов и небольших фраз, но не ожидайте, что он сможет переводить целые веб-страницы – он не предназначен для этого, и для перевода текстов существуют другие удобные инструменты.

Есть также и несколько других недостатков. Если Google не сможет определить исходный язык, он вернёт ошибку и не переведёт ваш текст. Также, для осуществления перевода вам потребуется подключение к Интернету.

Несмотря на всё это, скрипт может быть полезен в различных ситуациях, и после его установки вы заметите, как его легко использовать для быстрого перевода фраз из иностранных языков, которые вы не понимаете.

Устанавливаем и настраиваем скрипт для перевода выбранного текста

1. Чтобы иметь возможность использовать скрипт, для начала установите библиотеки libnotify-bin (для того, чтобы скрипт мог отправлять оповещения рабочего стола), wget (для получения перевода фразы через Google) и xsel (для получения текущего выбранного текста). В Ubuntu, Linux Mint и прочих дистрибутивах вы можете установить их с помощью следующей команды в вашем терминале (чтобы открыть его, используйте комбинацию клавиш Ctrl+Alt+T):

sudo apt-get install libnotify-bin wget xsel

2. Затем скопируйте код скрипта ниже:

#!/usr/bin/env bash
notify-send —icon=info «$(xsel -o)» «$(wget -U «Mozilla/5.0» -qO — «http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=en&dt=t&q=$(xsel -o | sed «s/[\»‘<>]//g»)» | sed «s/,,,0]],,.*//g» | awk -F'»‘ ‘{print $2, $6}’)»

Вставьте его в новый файл – давайте назовём его «notitrans» (вы можете присвоить ему любое имя, но именно на такое название я буду ссылаться в продолжении данной инструкции).

В скрипте выше замените «tl=en» на язык, на который вы хотите переводить выбранные тексты, например, «tl=ru» для русского языка, «tl=fr» для французского и так далее.

После завершения этих операций сохраните файл в вашей домашней директории и сделайте его исполняемым, используя следующую команду в терминале (или свойства файла в файловом менеджере вроде Nautilus):

chmod +x ~/notitrans

3. Поместите скрипт в ваш $PATH – например, чтобы поместить скрипт в /usr/local/bin/, используйте следующую команду:

sudo mv ~/notitrans /usr/local/bin/

4. Чтобы использовать скрипт, вы сможете привязать его к желаемой комбинации клавиш. Процесс настройки зависит от используемого вами окружения рабочего стола.

В Gnome (и Unity) вы можете сделать это, перейдя в Системные настройки – Клавиатура – Сочетания клавиш в раздел дополнительных сочетаний клавиш, где вам необходимо кликнуть +, чтобы добавить новую комбинацию клавиш. Здесь введите любое название для новой комбинации и «notitrans» как команду:

b_675_675_16777215_10_images_20_translate_highlighted_text_keyboard_shortcut.png

И, наконец, присвойте новой команде комбинацию клавиш, кликнув по ней и затем нажав комбинацию, которую вы хотите присвоить скрипту. Убедитесь, что эта комбинация клавиш ещё не используется!

Дополнительно: вариации скрипта для перевода выбранного текста

Этот скрипт легко модифицировать под свои нужны. Ниже вы найдёте несколько вариантов, которые вы при желании сможете расширить впоследствии. Чтобы использовать скрипты ниже, просто следуйте тем же шагам, что и выше (включая изменение en на язык, на который вы хотите переводить текст), но не копируйте код скрипта из шага 2, а используйте код ниже.

google translate

Отображение перевода через Zenity (который поддерживает копирование текста) вместо использования оповещений рабочего стола:

#!/usr/bin/env bash
text=»$(xsel -o)»
translate=»$(wget -U «Mozilla/5.0» -qO — «http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=en&dt=t&q=$(echo $text | sed «s/[\»‘<>]//g»)» | sed «s/,,,0]],,.*//g» | awk -F'»‘ ‘{print $2, $6}’)»
echo -e «Original text:» «$text»‘\n’ > /tmp/notitrans
echo «Translation:» «$translate» >> /tmp/notitrans
zenity —text-info —title=»Translation» —filename=/tmp/notitrans

Для корректной работы этого скрипта убедитесь, что Zenity установлен в вашей системе. Вы можете установить его в Ubuntu, используя следующую команду:

sudo apt-get install zenity

Отображение перевода в виде оповещения рабочего стола и автоматическое копирование перевода в буфер обмена:

#!/usr/bin/env bash
text=»$(xsel -o)»
translate=»$(wget -U «Mozilla/5.0» -qO — «http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=en&dt=t&q=$(echo $text | sed «s/[\»‘<>]//g»)» | sed «s/,,,0]],,.*//g» | awk -F'»‘ ‘{print $2, $6}’)»
echo «$translate» | xclip -selection clipboard
notify-send —icon=info «$text» «$translate»

Чтобы эта версия скрипта работала, вам необходим установленный xclip. Чтобы установить его в Ubuntu, используйте следующую команду:

sudo apt-get install xclip