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. 自動(dòng)識(shí)別中翻英/英翻中
          2. 翻譯

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

          截圖:


          對(duì)應(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 閱讀(2504) 評(píng)論(3)  編輯  收藏 所屬分類: python

          Feedback

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

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

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

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

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

          魺癍怞?湄嗚<髖?{?貱洠癍?0鉗鑷}R蠹麅磞=M??鰈+□%齨.來(lái)$枙漇?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ù)  更多評(píng)論   

          主站蜘蛛池模板: 丽水市| 开鲁县| 司法| 湘阴县| 九江县| 时尚| 海口市| 松江区| 屯昌县| 旬邑县| 应用必备| 定远县| 邵武市| 东海县| 五大连池市| 益阳市| 上犹县| 甘南县| 玉屏| 邮箱| 靖西县| 二连浩特市| 正阳县| 滨海县| 页游| 清远市| 北票市| 武强县| 彭山县| 望江县| 和平县| 前郭尔| 余姚市| 永顺县| 中江县| 富民县| 墨江| 怀柔区| 扎赉特旗| 郯城县| 武穴市|