Скрипт перевода текста (Google, Yandex) с определением исходного языка
Invite pending
Предлагаю вашему вниманию небольшой скрипт перевода текста через системы переводов Google и Yandex на различные языки с автоопределением исходного языка. Данный скрипт разрабатывался для удобного быстрого перевода выделенного текста по хоткеям.
Результат:

Собственно сам скрипт:
Запуск скрипта производится следующим образом:
# script.sh язык
примеры:
# scipt.sh ru
# script.sh en
Для включения возможности перевода через яндекс необходимо получить API ключ по ссылке api.yandex.ru/key/form.xml?service=trnsl и назначить его переменной ykey.
Включать или отключать соответствующие сервисы поиска можно через переменные google_enable и yandex_enable.
Переменные window_width и window_height управляют размерами итогового окна.
После выполнения скрипта, в окошке с результатом перевода можно нажать «ОК», в результате чего будет выполнен переход на сайт переводчика google с заполненным текстом для перевода.
Пример назначенных хоткеев через xbindkeys (~/.xbindkeysrc):
«2kseltr.sh ru»
Mod4 + r
«2kseltr.sh en»
Mod4 + e
«2kseltr.sh th»
Mod4 + t
«2ksearchya.sh»
Для работы скрипта должны быть установлены следующие программы:
xsel
zenity
google-translate-cli
Уставовка данных программ в Arch Linux:
pacman -Sy xsel zenity
yaourt -S google-translate-cli-git
Результат:

Собственно сам скрипт:
#!/usr/bin/env bash
ykey="YOUR_API_KEY"
google_enable=1
yandex_enable=1
window_width=300
window_height=400
to=$1
text=$(xsel -o);
( if [ "$google_enable" == 1 ]
then
echo "GOOGLE:"
trs {auto=$to} "$text" 2>&1;
echo "-----------------------------";
fi
if [ "$yandex_enable" == 1 ] && [ "$ykey" != "YOUR_API_KEY" ]
then
echo "YANDEX:";
from=$(curl -s -G "https://translate.yandex.net/api/v1.5/tr.json/detect" -d "key=$ykey" --data-urlencode "text=$text" | grep -Po '"lang":".*?"'|sed 's/"lang"//g'|sed 's/[\",\:]//g')
echo "Язык:$from";
ytext=$(curl -s -G "https://translate.yandex.net/api/v1.5/tr.json/translate" -d "key=$ykey&lang=$from-$to" --data-urlencode "text=$text" | grep -Po '"text":\[".*?"\]'|sed 's/"text"\:\["//g'|sed 's/"\]$//'|sed 's/\\"/"/g')
echo "$ytext";
fi
echo "=================";
) | zenity --title "Перевод - $1" --text-info --width=$window_width --height=$window_height ;
if [ "$?" == "0" ]
then
xdg-open "https://translate.google.com/#auto/$to/$text";
fi
Запуск скрипта производится следующим образом:
# script.sh язык
примеры:
# scipt.sh ru
# script.sh en
Для включения возможности перевода через яндекс необходимо получить API ключ по ссылке api.yandex.ru/key/form.xml?service=trnsl и назначить его переменной ykey.
Включать или отключать соответствующие сервисы поиска можно через переменные google_enable и yandex_enable.
Переменные window_width и window_height управляют размерами итогового окна.
После выполнения скрипта, в окошке с результатом перевода можно нажать «ОК», в результате чего будет выполнен переход на сайт переводчика google с заполненным текстом для перевода.
Пример назначенных хоткеев через xbindkeys (~/.xbindkeysrc):
«2kseltr.sh ru»
Mod4 + r
«2kseltr.sh en»
Mod4 + e
«2kseltr.sh th»
Mod4 + t
«2ksearchya.sh»
Для работы скрипта должны быть установлены следующие программы:
xsel
zenity
google-translate-cli
Уставовка данных программ в Arch Linux:
pacman -Sy xsel zenity
yaourt -S google-translate-cli-git