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
?