Как стать автором
Обновить

Скрипт перевода текста (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
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.