urxvt 插件实现被选单词的快速翻译
双击选中一个英文单词后,右键弹出中文翻译,松开右键后翻译结果消失。
自从 换种方式使用星际译王 之后,在终端查看一个英文单词的翻译结果,还非得按一下组合键的方式越来越让我觉得麻烦,如果你用 urxvt,而且不喜欢用 stardict 的划词翻译功能,英文不好手还懒,那么你应该试试这个插件。
该插件依赖 sdcv 和可用的英汉字典。插件安装步骤大致如此:
- 修改 urxvt 的配置文件 ~/.Xresources,设定插件所在目录,声明使用的插件
- 执行
xrdb ~/.Xresources
命令使配置文件生效 - 复制以下代码并另存为 /your/folder/translate-selection 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #! perl
sub on_start {
my ($self) = @_;
$self->grab_button (3, urxvt::ControlMask);
()
}
sub on_button_press {
my ($self, $event) = @_;
if ($event->{button} == 3) {
my $popup = $self->popup ($event)
or return 1;
my ($word) = $self->selection =~ m/([a-zA-Z]+)/;
open PIPE, "export LANG=zh_CN.UTF-8; /usr/bin/sdcv -n --utf8-output -u 'XDICT英汉辞典' '$word' | tail -n +5 | head -15 | head -n -1 |"
or close PIPE;
for my $eachline (<PIPE>) {
chomp $eachline;
$eachline = $self->locale_decode($eachline);
$popup->add_title ($eachline);
}
close PIPE;
$popup->show;
}
()
}
|