После прочтения двух статей о zenity подумал что неплохо было бы попробовать и себя в этом, только не мог найти подходящей для этого задачи, а просто ради интереса строить окна с кнопками уже надоело. И так, к Вашему сведению предоставляется мой первый не бесполезный баш скрипт с использованием zenity.
Пользуюсь в firefox прекрасным дополнением для перевода текста в контекстном меню под названием My-translator, он легкий, удобный и мне нравится. А на днях захотел я подобную фичу и в своем линуксе, руки есть, голова тоже, выбор упал на bash + zenity + wget + Yandex.Translate.
Первым делом нужно узнать есть ли у яндекса api, на сайте не нашел подобный раздел (может плохо искал?), google показал ссылки один блог где был пример использования api для перевода с помощью ajax. Воспользовавшись сервисом hurl я быстро понял что нужно передавать три основных параметра: text, lang и srv. Text должен содержать наш текст, lang родной язык и язык для перевода в формате «en-ru», а параметр srv указывает на то что мы хотим воспользоваться переводом — «tr-text». С этим легко и понятной, идем дальше.
Скрипт получился маленьким и эффективным, по крайней мере для меня.
В bash не силен, но гуглить умею.
В 6-ой строке я использовал утилиту xclip для того чтобы можно было просто выделить нужный текст и нажать горячие клавиши и появится поле уже с вставленным в него текстом, удобно как ни как. Есть ли еще способы сделать http запрос с bash скрипта я не знаю, но wget с этим отлично справляется.
Вот собственно и все, далее добавляем горячие клавиши на запуск скрипта и будет Вам счастье. Буду рад если кому-нибудь поможет.
Пользуюсь в firefox прекрасным дополнением для перевода текста в контекстном меню под названием My-translator, он легкий, удобный и мне нравится. А на днях захотел я подобную фичу и в своем линуксе, руки есть, голова тоже, выбор упал на bash + zenity + wget + Yandex.Translate.
Первым делом нужно узнать есть ли у яндекса api, на сайте не нашел подобный раздел (может плохо искал?), google показал ссылки один блог где был пример использования api для перевода с помощью ajax. Воспользовавшись сервисом hurl я быстро понял что нужно передавать три основных параметра: text, lang и srv. Text должен содержать наш текст, lang родной язык и язык для перевода в формате «en-ru», а параметр srv указывает на то что мы хотим воспользоваться переводом — «tr-text». С этим легко и понятной, идем дальше.
Скрипт получился маленьким и эффективным, по крайней мере для меня.
#!/bin/bash # Translate text with Yandex API _zenity="/usr/bin/zenity" _out="/tmp/translate.output.$$" text=$(${_zenity} --title "Enter text" --entry --entry-text="$(xclip -o)" ) if [ $? -eq 0 ] then wget -O ${_out} http://translate.yandex.ru/tr.json/translate --post-data="srv=tr-text&lang=en-ru&text=$text" sed -i 's/"//g' ${_out} ${_zenity} --width=600 --height=240 \ --title "Translation for $text" \ --text-info --filename=${_out} /bin/rm ${_out} fi
В bash не силен, но гуглить умею.
В 6-ой строке я использовал утилиту xclip для того чтобы можно было просто выделить нужный текст и нажать горячие клавиши и появится поле уже с вставленным в него текстом, удобно как ни как. Есть ли еще способы сделать http запрос с bash скрипта я не знаю, но wget с этим отлично справляется.
Вот собственно и все, далее добавляем горячие клавиши на запуск скрипта и будет Вам счастье. Буду рад если кому-нибудь поможет.
