Skip to content

Instantly share code, notes, and snippets.

@haltaction
Last active March 14, 2021 18:56
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save haltaction/7a12647ae6db6593a4f7 to your computer and use it in GitHub Desktop.
Save haltaction/7a12647ae6db6593a4f7 to your computer and use it in GitHub Desktop.
Linux translate text in buffer
1 - Устанавливаем обёртку над гугл транслейт
https://github.com/soimort/translate-shell
2 - Устанавливаем необходимые пакеты:
sudo apt-get install libnotify-bin xsel
3 - Создаём файл с именем sel-transl и копируем в него
#!/usr/bin/env bash
notify-send -u critical "$(xsel -o)" "$(xsel -o | trans -no-ansi -b :ru)"
4 - Делаем этот файл исполняемым и перемещаем его в /usr/bin/:
sudo chmod 777 ./seltr && sudo mv ./seltr /usr/bin/
5 - Создаем хоткей System settings->Keyboard->Shortcuts->Custom Shortcuts В поле команды вводить имя файла в /usr/bin/ (команда терминала)
@catscury
Copy link

Обновление для возможности перевода в обе стороны(ru-en).
Также уведомление с переведенным текстом исчезает через некоторое время.
Добавляется зависимость на python и на пакет langdetect в нем:
pip install langdetect --user

Обновленный скрипт sel-transl:
#!/usr/bin/env bash
in_text=$(xsel -o)
in_lang=$(eval "python3 -c'from langdetect import detect; print(detect("$in_text"));'")
if [ $in_lang = "ru" ]
then
to_lang="en"
else
to_lang="ru"
fi
expire_time="$((1000+1000*${#in_text}/30))"
notify-send -t $expire_time "$in_text" "$(echo $in_text | trans -no-ansi -b :$to_lang)"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment