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-posixexecvвместоio.popen? xselпродолжает висеть в процессах после вызова, так как форкается, исправить.