README.md

Popup Translate

Срипт переводящий текст из буфера обмена на выбранный язык. Показывает перевод как всплывающее уведомление под курсором.

Можно выделять и переводить любой произвольный текст, до котрого дотянется мышка. Не нужно копировать явно текст в буфер обмена достаточно просто его выделить и нажать горячую клавишу запуска сприпта poptrans.

Зависимости

apt install lua xclip xsel xdotool aosd-cat translate-shell

Установка и удаление

Глобально

sudo make install
sudo make uninstall

Локально

make PREFIX=$HOME/.local install
make PREFIX=$HOME/.local uninstall

Независимо

make DESTDIR=$HOME/some_you_dir install
make DESTDIR=$HOME/some_you_dir uninstall

Настройка

При мервом запуске формуруется конфиругационный файл ~/.config/poptrans.cfg

  • lang_from с какого языка переводить
  • lang_to на какой язык переводить
  • copy_translated сохранять ли переведённый текст в буффер обмена
  • show_timer сколько времени показывать переведённый текст
  • follow_mouse показывать ли текст возле кусора мышки
  • popup_width максимальная ширина области с текстом
  • popup_offset_x смешение по горизонтали от курсора при показе перевода

В случае ошибок при редактировании его можно сбросить, удалив файл конфигурации и создав новый просто запустив poptrans. Конфигурация содержит подсказки.

Использование

  • poptrans -h/poptrans --help Вывод справки
  • poptrans Перевод текста из буфера обмена и его отображение
  • poptrans zh Переопределение конфигурации, перевод будет на китайский

Если язык переоперделяется через коммандную строку то можно использовать как полное название языка так и сокращения, например ja или japanese

Исходный язык, тот с коротого идёт перевод либо определяется автоматически силами утилиты translate-shell или задаётся явно в конфигурационном файле

Сам скрипт предполагается “вешать” на горячую клавишу (например F7) при нажатии на которую будет произведён перевод. Удобно использовать несколько таких клавиш. Для перевода на разные языки например

  • F7 poptrans en переводить любой текст на английский
  • F8 poptrans ru переводить любой текст на русский
  • F9 poptrans ch переводить любой текст на китайскй

На заметку

Если менять под себя например выводить перевод через notify-send вместо aosd_cat важно не забывать ВСЕГДА пропускать данные через shell_escape() и когда они принимаются от программы и когда передаются программе. Если этого не сделать то может привести к печальным последствиям когда в терминале исполнится копипаста из например браузера.

TODO

  • Перейти на использорвание lua-posix execv вместо io.popen?
Описание

Скрипт для перевода произвольного текста из буфера обмена

Конвейеры
0 успешных
0 с ошибкой