够用,一个 Linux 下的翻译软件

2014-09-14 22:47:48 +08:00
 lcqtdwj
前段时间重装系统,发现Linux桌面多了好多有趣的软件。麒麟和深度带来很多新的东西。受openyoudao启发,写了一个翻译小软件,如其名,希望够用就好。

现有的功能:
1.在线查询,使用有道词典,直接用的有道的结果(因为界面真的清爽好看>0<)

2.离线查询,使用开源的stardict词库,一开始自带了3个,需要其他词库也可以加,只要拷贝到dict文件夹就好。

3.程序启动后在系统托盘处可以更换词典和切换使用在线离线查询,还有暂停查询。

安装&运行:
1.加入lz的ppa源:
sudo add-apt-repository ppa:lcqtdwj/python-marisa-trie

2.更新源:
sudo apt-get update

3.安装够用:
sudo apt-get install gouyong

如果提示依赖不满足,请执行
sudo apt-get -f install
安装依赖,然后再次安装。

4.在启动器搜索够用,打开会在系统托盘出现够用图标。然后就可以划次翻译了,在线翻译可能会比较慢,请第一次多等一会。

(注:条件原因,Lz只测试了ubuntu14.04,其他版本如果不能启动,请在终端输入:GouYong,把开始的几行复制给我,帮助够用改进,谢谢啦。)

项目地址: https://github.com/jiffies/GouYong
欢迎大家一起改进开发,让够用越来越够用,越来越舒服。
7486 次点击
所在节点    分享创造
13 条回复
CRight
2014-09-14 22:59:36 +08:00
支持!Linux上这类软件太少了。
jacob
2014-09-14 23:25:10 +08:00
好。谢楼主
em70
2014-09-15 01:01:47 +08:00
linux厂商都在做系统本身,很少商业公司做开发工具,其实windows为啥统治桌面,不是系统本身多好,因为微软创业就是BASIC编译器起家的,最擅长为程序员服务,即使到今天VS仍然是最先进的IDE环境,社区也活跃.linux现状很难改变了,不过还有一个机会,那就是android,把这个分支发展为桌面,希望很大.
polythene
2014-09-15 01:20:34 +08:00
赞,加油!
wenLiangcan
2014-09-15 10:49:15 +08:00
试试
wenLiangcan
2014-09-15 11:00:28 +08:00
好吧,Arch 用户表示不知怎么解决依赖。。。。
lcqtdwj
2014-09-15 13:24:08 +08:00
@wenLiangcan 额,对Arch不熟悉,可以打成rpm包,但是有的依赖不知道Arch有没有。希望有Arch熟悉的小伙伴能够帮忙,打个方便的包。
lcqtdwj
2014-09-15 13:24:21 +08:00
@polythene 嘿嘿
lcqtdwj
2014-09-15 13:24:43 +08:00
@CRight 谢谢,欢迎试用
wenLiangcan
2014-09-15 14:36:08 +08:00
@lcqtdwj 就是那几个叫 gi 什么的依赖没有。。。
Killian
2014-09-17 22:44:19 +08:00
赞!确实需要一个简洁界面的 English Dictionary。为了学英语,我的观点是尽量用英文的解释来解释英文,所以我比较喜欢 Collins 词典。http://www.collinsdictionary.com/ 它有两个词典,一个English,一个English for learner (这里边的解释很易懂)。我现在在用python写一个抓取程序。我把大概的程序贴下,楼主觉得有用可以加到在线翻译的选项里。希望以后能在github上合作~


# -*- coding: utf-8 -*-
"""
Lookup word in Collins website
version 0.1
"""
import urllib, urllib2
import re
import codecs
from BeautifulSoup import BeautifulSoup


def selectDic():
# which dictionary is used, 4 options
datasets = ['american', 'american-cobuild-learners',
'english', 'english-cobuild-learners']

# For simplicity, 'american-cobuild-learners' for default
# dic = 'american-cobuild-learners'
dic = 'american'

return dic

def lookupWord():
# Get the lookup word
# Again, for illustration, we fixed the look-up word to 'geek'
word = 'world'
return word

def getQuery(dic, word):
query = {}
query['dataset'] = dic
query['q'] = word

return query

def parsePage(content, word):
soup = BeautifulSoup(content)

#Find the explanation part, id name is corresponding to the lookup word
idname = word + "_1"
rel = soup.findAll('div', id=idname)

# unicode is for phonetic symbols
rel = unicode.join(u'\n',map(unicode,rel))


# There are icons for pronunciation request, for now, I deleted~~
# Hope this can be added
regx = r'(<img.*/>)';
m = re.search(regx, rel)
if m:
rel = rel.replace(m.group(0), '')

# For now, I save the result to a html to testify correctness
# If it is a chrome extention, it can be shown immediately~~
head = '<html><head><title>Page title</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body>'
tail = '</body></html>'
page = head + ''.join(rel) + tail

return page

def savePage(rel):
f = codecs.open('dic.html','w','utf-8')
f.write(rel)
f.close()

def queryPost():

try:
baseurl = "http://www.collinsdictionary.com/search";
timeout = 10;

dic = selectDic()
word = lookupWord()

query = getQuery(dic, word)

data = urllib.urlencode(query);

page = urllib2.urlopen(baseurl, data, timeout)
content = page.read();

rel = parsePage(content, word)
savePage(rel)

except:
print "Error"


if __name__ == "__main__":

queryPost()
print "Done"
Killian
2014-09-17 22:54:15 +08:00
啊,我忘了,有道是有Collins的 English for Learners 结果的 =.=
没在linux环境下,也就没看楼主软件的结果,想当然了 whatever,祝GouYong get better and better
lcqtdwj
2014-09-19 20:12:45 +08:00
@Killian 谢谢>O<,最近在搞数学建模,暂时没时间看。。。有想法可以github加入。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/133429

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX