Pull to refresh

Скрипт перевода текста (Google, Yandex) с определением исходного языка

Предлагаю вашему вниманию небольшой скрипт перевода текста через системы переводов Google и Yandex на различные языки с автоопределением исходного языка. Данный скрипт разрабатывался для удобного быстрого перевода выделенного текста по хоткеям.

Результат:
image

Собственно сам скрипт:

#!/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
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.