资讯专栏INFORMATION COLUMN

50 行代码,实现中英文翻译

tunny / 2856人阅读

摘要:尤其是对于程序员来说,好的编程资料都是来自英文文档。甚至你借助今天的代码,也可以自己开发个小型翻译软件。有道词典接口今天的翻译程序是借用有道翻译的接口来实现的。相应的输入英文也可以翻译成中文。

阅读文本大概需要 4.2 分钟。

现在的时代,越来越看重英语能力。如果你懂得英语,你会接触到更大的世界,你会发现更多的信息。尤其是对于程序员来说,好的编程资料都是来自英文文档。那些国内的翻译的版本,有很多内容跟原版相差的太多,甚至牛头不对马嘴。

虽然现在有非常多的翻译软件,但通过自己动手写个 python 小程序,是非常的有成就感。甚至你借助今天的代码,也可以自己开发个小型翻译软件。

有道词典接口

今天的翻译程序是借用有道翻译的接口来实现的。程序的逻辑很简单,就是利用有道翻译 ,把需要翻译的内容做为参数,传到相应的 url 里。然后通过有道的服务器返回一个 json 数据,我们就可以获得相应的翻译结果。

程序调用结果

启动程序在终端输入你想要翻译的内容,可以中译英,也可以英译中。比如输入「Koc 最帅!」。

相应的输入英文也可以翻译成中文。

程序代码

程序代码很简单,在相应的代码里我都有注释。

import json

import requests

# 翻译函数,word 需要翻译的内容
def translate(word):
    # 有道词典 api
    url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
    # 传输的参数,其中 i 为需要翻译的内容
    key = {
        "type": "AUTO",
        "i": word,
        "doctype": "json",
        "version": "2.1",
        "keyfrom": "fanyi.web",
        "ue": "UTF-8",
        "action": "FY_BY_CLICKBUTTON",
        "typoResult": "true"
    }
    # key 这个字典为发送给有道词典服务器的内容
    response = requests.post(url, data=key)
    # 判断服务器是否相应成功
    if response.status_code == 200:
        # 然后相应的结果
        return response.text
    else:
        print("有道词典调用失败")
        # 相应失败就返回空
        return None

def get_reuslt(repsonse):
    # 通过 json.loads 把返回的结果加载成 json 格式
    result = json.loads(repsonse)
    print ("输入的词为:%s" % result["translateResult"][0][0]["src"])
    print ("翻译结果为:%s" % result["translateResult"][0][0]["tgt"])

def main():
    print("本程序调用有道词典的API进行翻译,可达到以下效果:")
    print("外文-->中文")
    print("中文-->英文")
    word = input("请输入你想要翻译的词或句:")
    list_trans = translate(word)
    get_reuslt(list_trans)

if __name__ == "__main__":
    main()

本文首发于公众号「痴海」,公众号回复「1024」,免费领取 2018 最新 python 教程。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41993.html

相关文章

  • lrc滚动歌词解析及显示

    摘要:以为扩展名的歌词文件可以在各类数码播放器中同步显示。这是用于总体调整显示快慢的,但多数的可能不会支持这种标签。如何实现歌词的解析解析思路如下根据字符串,通过换行符分成数组的每一项。相应的正则表达式以为例,统一解析成以秒为单位的秒。 lrc歌词格式是什么样的? lrc是英文lyric(歌词)的缩写,被用做歌词文件的扩展名。以lrc为扩展名的歌词文件可以在各类数码播放器中同步显示。LRC...

    android_c 评论0 收藏0
  • 分享一款将中文网站源代码直接生成英文网站的工具

    摘要:背景在网站开发初期,由于快速上线网站,没有考虑完善的国际化方案,直接将中文硬编码到代码中,当网站上线后,想再实现国际化,发现工程量太大,因此发现了一款工具,只需要输入一行命令,即可将中文网站快速生成英文网站。 ...

    chavesgu 评论0 收藏0
  • python23代码实现图形化在线翻译(附源码和成品下载地址)

    摘要:主要是需要分析有道翻译的请求接口的交互和传参。所以通过来实现爬虫是非常明智且高效的选择就这样我们从开始优雅的揭开有道翻译的面纱你可以利用这个做一些有趣的事情当然这个可能难度不大对于老鸟老说很简单勿喷。 ...

    番茄西红柿 评论0 收藏2637
  • 2017-07-25 前端日报

    摘要:前端日报精选三思而后行想提高团队技术,来试试这个套路如何开发一个插件学习笔记块级作用域绑定译文详解带来的个重大变化中文周二放送画图知乎专栏第期新特性译配置译高性能视差滚动行代码构建区块链知乎专栏渲染器修仙之路之拷贝对象已 2017-07-25 前端日报 精选 SSR 三思而后行想提高团队技术,来试试这个套路!如何开发一个 Atom 插件ES6学习笔记:块级作用域绑定【译文】详解VUE2...

    bluesky 评论0 收藏0
  • Chrome开发者工具中关于“Deferred long-running timer task(s)

    摘要:在文本输入框中过滤的字段中输入在列表中查找总时间超过毫秒的定时器函数。当浏览器在处理用户的手势的情景下,定时器函数执行超过毫秒也会触发该消息英文原文如果阅读中文后还无法理解可以参考英文截图 原文地址:http://stackoverflow.com/questions/37367200/what-is-the-deferred-long-running-timer-tasks-warn...

    omgdog 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<