Экранный переводчик
Какой можно использовать переводчик для Deepin так что бы выдилил текст нажал комбинацию клавиш и получил перевод в сплывающем окне, где он будет брать данные из сети или локально не важно. Спасибо.
Дополнение в выше указанной инструкции.
Если не установлены пакеты libnotify-bin и gawk, то устанавливаем их командой:
sudo aptitude install libnotify-bin gawk
Скачиваем файл trans из translate-shell командой:
wget git.io/trans
Перемещаем его в /usr/local/bin/ командой:
sudo mv trans /usr/local/bin/
Делаем файл исполняемым:
sudo chmod +x /usr/local/bin/trans
Если мы хотим чтобы перевод помимо того, что он будет выводится во всплывающем окне уведомлений еще и сразу помещался в буфер обмена, то тогда нужно установить пакет xclip:
sudo aptitude install xclip
Теперь нужно создать в /usr/local/bin/ файл с любым именем в который мы поместим скрипт, например, в том же терминале введя:
sudo nano /usr/local/bin/translate
В данном случае скрипт будет выглядеть следующим образом, копируем его в терминал и сохраняем нажав ctrl+x:
#!/bin/sh a=`xclip -o | trans :ru -no-ansi -b -l | sed 's/\[\[\[\"//' | cut -d \" -f 1` notify-send -u critical "$a" echo $a | xclip -selection clipboard
Затем делаем файл исполняемым:
sudo chmod +x /usr/local/bin/translate
Если же мы хотим, чтобы перевод не помещался в буфер обмена, а просто выводился на экран во всплывающем окне уведомлений, то вместо xclip устанавливаем xsel:
sudo aptitude install xsel
В этом случае скрипт будет иметь такой вид:
#!/bin/sh notify-send -u critical "$(xsel -o | trans :ru -no-ansi -b -l)"
Сохраняем и не забываем сделать файл исполняемым, как описано выше.
Спасибо за ответ, но у меня есть несколько вопросов:
- Каким из предстваленных вами вы пользуетесь?
- Как пользоваться ScreenTranslator?
- Какой нужно написать скрипт что бы сейчас пользоваться методом «Перевода выделенного текста…»?
Спасибо за ваши ответы.
Пользуюсь ScreenTranslator: горячие клавиши Ctrl+Alt+Z, выделяем область перевода и Ждемс…
Перевода выделенного текста (Источник) Скрипт: notify-send -u critical «$(xsel -o)« «$(wget -U «Mozilla/5.0» -qO — «http://translate.google.com/translate_a/t?client=t&text=$(xsel -o | sed «s/[\»‘<>]//g»)&sl=auto&tl=ru» | sed ‘s/\[\[\[\»//’ | cut -d \» -f 1)».
Как то у меня не получается. Я поставил ScreenTranslator он появился в менюшке даже, я на него нажимаю — вроде что бы запустился, ничего не происходит, а потом выделяю текст нажимаю Ctrl+Alt+Z и опять ничего не происходит.
Со вторым вариантом тоже разбирался там сейчас гугул что то намудрил что бы просто так ответы не посылать на такие запраосы, в итоге тоже не получилось.
Блин помогите плиз.
Спасибо большое! Но первый вариант не подходит, у нас идиоты на Украине заблокировали Яндекс, а вот второй вариант буду смотреть — разбираться, спасибо ещё раз, обязательно напишу инструкцию как и что если получиться.
Можно еще установить (Источник),(Источник). На худой конец через wine пробовать устанавливать: Установка wine (staging) в Deepin
Установка wine (staging) в Deepin:
sudo dpkg —add-architecture i386
wget https://dl.winehq.org/wine-builds/Release.key
sudo apt-key add Release.key
Добавляем строчку в /etc/apt/sources.list
deb https://dl.winehq.org/wine-builds/debian/ sid main
Затем sudo apt-get update sudo apt-get install winehq-staging
sudo apt-get install winetricks
Создание префикса x32:
WINEARCH=win32 WINEPREFIX=~/.wine winecfg
Значит получилось сделать перевод, но не до конца того что хотелось.По мере того как буду делать улучшения буду менять инструкцию.
Для начала нам нужен переводчик который работает из под командной строки.
Скачиваем его вот от сюда. https://github.com/soimort/translate-shell
Я сделал по другому, перешел на сайт и там скачал скрипт https://www.soimort.org/translate-shell/trans после чего положил этот скрипт в /usr/bin и проверил работоспособность этого скрипта. Да не забудьте поставить галочку в свойствах что это исполняемый файл. Проверить работоспособность можно с помощью команды $trans -b :ru «Hello world!». После этого как убедились что пришел перевод начинаем читать инструкцию вот тут http://tuksik.ru/translate-google-linux/ , но только меняем скрипт который там указан на следующий
#!/usr/bin/env bash notify-send -u critical "Перевод:" "$(trans -e google -b :ru "$(xsel -o)")"
Вот в приципе и всё.
Есть конечно много ньюансов которые хотелось бы изменить, но оснавная задача решена и оставленно место для улучшения.
Отдельное и большое спасибо Юрию.
Улучшить хотелось бы что бы подсказка всплывала около курсора, а так же убрать звук когда она появляется.
Так же очень не приятная особенность что размер сообщения в Deepin — не меняеться от кол-ва текста и выходит в случае когда пытаешься перевести сразу большой кусок — перевод обрезается.
Так же замечена странное поведение, ShortCuts не работают на разных раскладках клавиатуры — это фича?
Перевод в отдельном окне добавить после всего скрипта:
echo -e "Original text:" "$text"'\n' > /tmp/notitrans echo "Translation:" "$translate" >> /tmp/notitrans zenity --text-info --title="Translation" --filename=/tmp/notitrans
Тут теперь с ним играть чтобы вспыхивал под курсором и т.д.