用于终端的网络英汉互译词典——DCCV(python写的玩具)(V0.11)

来源:转载

Linux应用的数量实在没Windows那么多,好用的更少了

就拿英汉词典来说,星际译王虽是元老级别的

但是在Windows下用惯了有道之类的东西的我实在觉得不怎么好用

后来用chrome的有道插件也基本解决了查单词的问题,因为需要查单词的时候大多都在看网页

没过多久感觉不看网页的时候查单词还是终端比较方便,虽然浏览器一直开着但是去点那个插件图标然后再查词有点麻烦

于是用上了sdcv和dict,都是控制台下的辞典工具,前者全称是“Star Dict Console Version”,查词的来源都是本地词库

用法很简单,“sdcv [word]”就行了

之后又不太喜欢Ubuntu 10.04的unity换上gnome3又感觉怪怪的,索性换了钟爱的Fedora

某天突然装了sdcv和dict发现没有英-汉的本地词库,也懒得装了,于是自己用python写了个基于dict.cn的网络版

有需要的朋友随意拿去用

 1 #!/usr/bin/python

2 # coding: utf-8

3

4 ## DCCC (Dict.Cn Console Version)

5 ## v0.1 6 ## 基于网络的终端英汉互译词典
7 ## Author: [email protected]
8 ## 2011.10.10
9
10 import urllib, sys, os
11 from xml.dom.minidom import parseString
12
13 def getClipboard():
14 return os.popen('xsel').read()
15
16 def getText(nodelist):
17 for node in nodelist:
18 if node.nodeType == node.TEXT_NODE:
19 return node.data
20
21 def Text(xml, tagName, addin=''):
22 if len(xml.getElementsByTagName(tagName)) > 0:
23 return getText(xml.getElementsByTagName(tagName)[0].childNodes) + addin
24
25 def foundResult(xml):
26 if xml.getElementsByTagName('sugg'):
27 printSugg(xml)
28 return True
29 elif Text(xml, 'def') == 'Not Found':
30 print '没有结果'
31 return True
32 else:
33 return False
34
35 def printSugg(xml):
36 suggs = xml.getElementsByTagName('sugg')
37 print '您要找的是不是:'
38 for sugg in suggs:
39 print getText(sugg.childNodes)
40
41 def printResult(xml):
42 pron = Text(xml, 'pron')
43 if not pron:
44 pron = u'无音标'
45 print "/n%s [%s]/n" % (Text(xml, 'key'), pron)
46 print Text(xml, 'def', '/n')
47 sents = xml.getElementsByTagName('sent')
48 for sent in sents:
49 print Text(sent, 'orig').replace('<em>', '[').replace('</em>', ']')
50 print Text(sent, 'trans')
51 print '/n'
52
53 if __name__ == "__main__":
54 api_url = "http://dict.cn/ws.php?utf8=true&q="
55 try:
56 word = sys.argv[1]
57 except IndexError:
58 word = getClipboard()
59 xml_str = urllib.urlopen(api_url + word).read();
60 xml = parseString(xml_str)
61 if not foundResult(xml):
62 printResult(xml)

写得很随意,欢迎赐教

源码下载地址(更新v0.11,完善了install.sh,下了老版本的朋友请运行一次“chmod +x /path/to/dccv.py”否则有可能无法使用d代替dcvv.py)

下载后运行install.sh即可安装

安装后可直接使用d代替/path/to/dccv.py,如下图

注意:看不懂install.sh的同学,安装后不要更改dccv.py所在路径

另外,不指定参数的时候会从剪切板取数据查询

支持英汉互译


分享给朋友:
您可能感兴趣的文章:
随机阅读: