2010年11月8日星期一

xsel + libnotify-bin + google translate 自定义一个桌面取词翻译小工具

应用平台: linux X11 gnome
依赖的软件: xsel, libnotify-bin, python(simplejson,urllib,urllib2)

两个脚本:

~/bin/translate.py

#!/usr/bin/env python
from urllib2 import urlopen
from urllib import urlencode
import simplejson
import sys

# The google translate API can be found here:
# http://code.google.com/apis/ajaxlanguage/documentation/#Examples

target=sys.argv[1]

text=' '.join(sys.argv[2:])

base_url='https://www.googleapis.com/language/translate/v2?'

params=urlencode( (('key',    'AIzaSyCTMQYOQUQdWSAJ478lI-peSVelazL_iCQ'),
       ('target', target),
       ('q',      text), ) )

url=base_url+params

response=urlopen(url)

jsonObject = simplejson.load(response)

print "from:%s; %s" % (jsonObject['data']['translations'][0]['detectedSourceLanguage'],jsonObject['data']['translations'][0]['translatedText'].encode('utf-8'))


~/bin/trans-xsel

#!/bin/bash

# depend on xsel, libnotify-bin, translate.py
WORD=`/usr/bin/xsel -o`
TEXT=`translate.py zh """$WORD"""`
DISPLAY=:0.0 notify-send -i /usr/share/pixmaps/gdict.xpm -u normal -t 8000  来自谷歌翻译: """$TEXT"""

给这两个脚本添加执行权限,并把 ~/bin 加入 PATH 变量。

使用 gconf-editor 命令,启动 gnome 配置工具。

在 /apps/metacity/keybinding_commands/ 中 设置一个空闲的 command 键的值为  trans-xsel
在 /apps/metacity/global_keybindings/run_command_1 中设置 自己的快捷键: 例如 <Control><Alt>z

设置完成之后关闭配置工具。

使用方法:

在桌面上的任意窗口中(比如浏览器)选中要翻译的文本,按快捷键 Ctrl+Alt+z 系统提示框将会弹出提示框显示翻译结果。

--
yaoms

1 条评论:

  1. 留言框出来了,脚本运行成功,特来表示感谢!

    回复删除