zoukankan      html  css  js  c++  java
  • python really battery includeded

    see the http://code.activestate.com/recipes/576890-python-wrapper-for-google-ajax-language-api/

    really cool isn't it?

    A Python Wrapper for Google AJAX Language API, Uses Google Language Detection, in cases source language is not provided with the source text, Splits up text if it's longer then 4500 characters, as a limit put up by the API. Working fine for me, please let me know if i missed something.

    Python, 53 lines
    Copy to clipboard

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    # -*- coding: utf-8 -*-
    
    import re
    import sys
    import urllib
    import simplejson
    
    baseUrl = "http://ajax.googleapis.com/ajax/services/language/translate"
    
    def getSplits(text,splitLength=4500):
        '''
        Translate Api has a limit on length of text(4500 characters) that can be translated at once, 
        '''
        return (text[index:index+splitLength] for index in xrange(0,len(text),splitLength))
    
    
    def translate(text,src='', to='en'):
        '''
        A Python Wrapper for Google AJAX Language API:
        * Uses Google Language Detection, in cases source language is not provided with the source text
        * Splits up text if it's longer then 4500 characters, as a limit put up by the API
        '''
    
        params = ({'langpair': '%s|%s' % (src, to),
                 'v': '1.0'
                 })
        retText=''
        for text in getSplits(text):
                params['q'] = text
                resp = simplejson.load(urllib.urlopen('%s' % (baseUrl), data = urllib.urlencode(params)))
                try:
                        retText += resp['responseData']['translatedText']
                except:
                        raise
        return retText
    
    
    def test():
        msg = "      Write something You want to be translated to English,\n"\
            "      Enter ctrl+c to exit"
        print msg
        while True:
            text = raw_input('#>  ')
            retText = translate(text)
            print retText
            
    
    if __name__=='__main__':
        try:
            test()
        except KeyboardInterrupt:
            print "\n"
            sys.exit(0)
    
  • 相关阅读:
    Windows Server 2008 R2 实现多用户连接远程桌面
    增加远程登录用户登陆个数
    Win2008R2PHP5.4环境加载Zend模块
    Windows 和  Linux 下 禁止ping的方法
    Windows 2003 FastCgi安装环境
    Windows2008下搭建NFS实现windows空间提供linux使用
    Spring + JdbcTemplate + JdbcDaoSupport examples
    Spring Object/XML mapping example
    Spring AOP + AspectJ in XML configuration example
    Spring AOP + AspectJ annotation example
  • 原文地址:https://www.cnblogs.com/lexus/p/1853764.html
Copyright © 2011-2022 走看看