linux终端复制翻译工具,linux终端翻译神器

#! /usr/bin/python

import re;

import urllib;

import urllib2;

import sys;

def debug():

xml = open("word.xml").read();

print get_text(xml);

print get_elements_by_path(xml, "custom-translation/content");

#print_translations(xml, False, False);

def get_elements_by_path(xml, elem):

if type(xml) == type(''):

xml = [xml];

if type(elem) == type(''):

elem = elem.split('/');

if (len(xml) == 0):

return [];

elif (len(elem) == 0):

return xml;

elif (len(elem) == 1):

result = [];

for item in xml:

result += get_elements(item, elem[0]);

return result;

else:

subitems = [];

for item in xml:

subitems += get_elements(item, elem[0]);

return get_elements_by_path(subitems, elem[1:]);

textre = re.compile("\!\[CDATA\[(.*?)\]\]", re.DOTALL);

def get_text(xml):

match = re.search(textre, xml);

if not match:

return xml;

return match.group(1);

def get_elements(xml, elem):

p = re.compile("" + "(.*?)" + elem + ">", re.DOTALL);

it = p.finditer(xml);

result = [];

for m in it:

result.append(m.group(1));

return result;

GREEN = "\033[1;32m";

DEFAULT = "\033[0;49m";

BOLD = "\033[1m";

UNDERLINE = "\033[4m";

NORMAL = "\033[m";

RED = "\033[1;31m"

def crawl_xml(queryword):

return urllib2.urlopen("http://dict.yodao.com/search?keyfrom=dict.python&q="

+ urllib.quote_plus(queryword) + "&xmlDetail=true&doctype=xml").read();

def print_translations(xml, with_color, detailed):

#print xml;

original_query = get_elements(xml, "original-query");

queryword = get_text(original_query[0]);

custom_translations = get_elements(xml, "custom-translation");

print BOLD + UNDERLINE + queryword + NORMAL;

translated = False;

for cus in custom_translations:

source = get_elements_by_path(cus, "source/name");

print RED + "Translations from " + source[0] + DEFAULT;

contents = get_elements_by_path(cus, "translation/content");

if with_color:

for content in contents[0:5]:

print GREEN + get_text(content) + DEFAULT;

else:

for content in contents[0:5]:

print get_text(content);

translated = True;

yodao_translations = get_elements(xml, "yodao-web-dict");

printed = False;

for trans in yodao_translations:

webtrans = get_elements(trans, "web-translation");

for web in webtrans[0:5]:

if not printed:

print RED + "Translations from yodao:" + DEFAULT;

printed = True;

keys = get_elements(web, "key");

values = get_elements_by_path(web, "trans/value");

summaries = get_elements_by_path(web, "trans/summary");

key = keys[0].strip();

value = values[0].strip();

#summary = summaries[0].strip();

#lines = get_elements(summary, "line");

if with_color:

print BOLD + get_text(key) + ":\t" +DEFAULT + GREEN + get_text(value) + NORMAL;

#for line in lines:

# print GREEN + get_text(line) + DEFAULT;

#print get_text(summary) + DEFAULT;

else:

print get_text(value);

#print get_text(summary);

#translated = True;

#if not detailed:

# break

def usage():

print "usage: dict.py word_to_translate";

def main(argv):

if len(argv) <= 0:

usage();

#debug();

sys.exit(1);

xml = crawl_xml(" ".join(argv));

print_translations(xml, True, False);

if __name__ == "__main__":

main(sys.argv[1:]);

1.把上面的代码保存在文件中,以喜欢的文件名命名。(如 fy)。

2.赋予该文件可执行的权限。(chmod +x fy)

3.设置环境变量(gedit /etc/profile),在最后一行引号之间加上:文件的绝对路径。

4.输入fy hello试试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值