stone2083

          命令行下翻譯工具

          接上文,繼續(xù)show下我命令行下的工具--翻譯腳本
          (利用了google 翻譯 json api:http://translate.google.cn/translate_a/t?client=t&text=%s&hl=zh-CN&sl=%s&tl=%s

          特性:
          1. 自動識別中翻英/英翻中
          2. 翻譯

          涉及技術(shù):
          1. python
          2. urllib
          3. json
          4. re

          截圖:


          對應(yīng)代碼:
           1 '''
           2 Created on 2010-11-28
           3 
           4 @author: stone
           5 '''
           6 import json
           7 import re
           8 import sys
           9 import urllib2
          10 import types
          11 
          12 res = 'http://translate.google.cn/translate_a/t?client=t&text=%s&hl=zh-CN&sl=%s&tl=%s'
          13 agent = 'Mozilla / 5.0 (X11; U; Linux i686; en - US) AppleWebKit / 534.7 (KHTML, like Gecko) Chrome / 7.0.517.44 Safari / 534.7'
          14 
          15 def get_data(text, sl='en', tl='zh-CN'):
          16     req = urllib2.Request(res % (urllib2.quote(text), sl, tl))
          17     req.add_header('user-agent', agent)
          18     content = urllib2.urlopen(req).read()
          19     return json.loads(to_standard_json(content))
          20 
          21 def show(data):
          22     #step1
          23     print u'翻譯:\n  %s' % (data[4][0][0])
          24     #step2
          25     if types.ListType == type(data[1]):
          26         print u'\n字典:'
          27         for word in data[1]:
          28             print word[0]
          29             if len(word) > 1:
          30                 for i, w in enumerate(word[1]):
          31                     print '  %s.%s' % (i + 1, w) 
          32 
          33 def to_standard_json(json):
          34     p = re.compile(r',([,\]])')
          35     while(p.search(json)):
          36         json = p.sub(lambda m:',null%s' % (m.group(1)), json)
          37     return json
          38 
          39 def contains_cn(text):
          40     for c in text:
          41         if ord(c) > 127:
          42             return True
          43     return False
          44 
          45 if __name__ == '__main__':
          46     if not len(sys.argv) == 2 or not sys.argv[1].strip():
          47         print 'Useage:translate.py word'
          48         sys.exit()
          49     word = sys.argv[1].strip()
          50     if contains_cn(word):
          51         show(get_data(word, 'zh-CN''en'))
          52     else:
          53         show(get_data(word, 'en''zh-CN'))


          posted on 2011-04-17 19:49 stone2083 閱讀(2505) 評論(3)  編輯  收藏 所屬分類: python

          Feedback

          # re: 命令行下翻譯工具 2011-04-18 21:08 西瓜影院

          一直不用 命令翻譯的說
          用的都是工具 在你這學(xué)習(xí)了  回復(fù)  更多評論   

          # re: 命令行下翻譯工具 2013-05-06 10:02 gftgh

          [CustomFont]
          Texture=Textures/紫鉆1.tga
          CellX=15
          CellY=12
          Text="123456"  回復(fù)  更多評論   

          # re: 命令行下翻譯工具 2014-01-11 15:54 張啟杰

          魺癍怞?湄嗚<髖?{?貱洠癍?0鉗鑷}R蠹麅磞=M??鰈+□%齨.來$枙漇?dMu??Uv軇鏚珶>焬礙}揯-,$猊霨誕??霔no'SA潸駔?仛 秸r懪娃?橮0?鞅杏7鳦T*U(o廦Xr鐉?nX帥)??罤^?=y黝斾y凗蜃舯??w礹澫脜貃2x囔?X<qw8?仿
          $A€]襟j咭痯闃好騶9瘝@蚓q逋>a樞籡+薁濚睹 F?徨t€隰寬|?寕鮆?  回復(fù)  更多評論   

          主站蜘蛛池模板: 通山县| 遂平县| 三江| 阳原县| 绥江县| 丰台区| 高唐县| 财经| 固镇县| 博白县| 景洪市| 遂宁市| 广南县| 长宁县| 莱西市| 随州市| 阜南县| 石景山区| 藁城市| 祥云县| 乐安县| 乌恰县| 信丰县| 九龙城区| 昌黎县| 礼泉县| 乐安县| 大余县| 久治县| 浏阳市| 禄丰县| 铜山县| 梅州市| 库尔勒市| 黄浦区| 奉新县| 长乐市| 鹰潭市| 云梦县| 鹤山市| 诸城市|