专栏首页小黄人打代码翻译功能实现详解

翻译功能实现详解

相信体验过翻译功能的小伙伴都很好奇是怎么实现的呢?

其实很简单,简单三步即可完成:

第一步:申请有道翻译API key;

第二步:通过这个key值去调用有道API,返回一个包含翻译结果的json数据;

第三步:最后把json数据封装到微信文本消息中,返回给微信用户。

第一步

小黄人选用有道的API,当然也可以选用其他如百度翻译等的API,不过有些是收费的,有道API虽然不收费,但是限制使用次数,每个小时最多只能查询1000次。

首先访问有道翻译API官网:http://fanyi.youdao.com/openapi

选择“调用数据接口”

填写相关信息后申请

如果没有服务器,可以用前面所讲的ngrok映射外网的方式,填写映射出的URL,或者购买百度BAE,每天只需0.4元即可拥有一台简易的服务器,小黄人就是购买了一台百度BAE

根据API参数说明配置好参数

Json格式

第二步

这是调用API,返回结果的代码

/** * 简单翻译,回复简单译文 * @param yuanwen * @return * @throws Exception */ public String transalte(Stringyuanwen)throwsException { //设置URL编码为utf-8 StringyuanwenEncode= java.net.URLEncoder.encode(yuanwen,"utf-8"); StringmyURL= newString("http://fanyi.youdao.com/openapi.do?keyfrom=" + KEYFROM +"&key=" + KEY+ "&type=data&doctype=json&version=1.1&q=" + yuanwenEncode); System.out.println(myURL); URLurl= newURL(myURL); //获取链接 URLConnectioncon= url.openConnection(); //获取输入流 InputStreamin = con.getInputStream(); //以utf-8编码的方式读取输入流 InputStreamReaderins= newInputStreamReader(in,"utf-8"); BufferedReaderbr = new BufferedReader(ins); Stringtemp; StringBuildersb = new StringBuilder(); //每次读取一行 while((temp = br.readLine())!=null) { sb.append(temp); } //用json字符串初始化JSONObject对象 JSONObjectjsonObject= newJSONObject(sb.toString()); //获取JSONObject对象中key为translation的值,该值就是有道翻译的结果 Stringtranslation= jsonObject.getString("translation"); //去掉首尾的["和"]符号 translation = translation.substring(2, translation.length()-2); /* * 关闭资源 */ ins.close(); in.close(); returntranslation; }

第三步

把翻译的结果封装成微信可以接收的文本消息

这里简单看看,关于如何与微信后台通信,小黄人找时间另写一篇图文

public staticString initText(String fromUserName, String toUserName, String content) { TextMessagetextMessage = new TextMessage(); textMessage.setFromUserName(toUserName); textMessage.setToUserName(fromUserName); textMessage.setMsgType(MASSAGE_TEXT); textMessage.setCreateTime(newDate().getTime()); textMessage.setContent(content); returntextMessageToXml(textMessage); }

到这里就结束了,有兴趣的小伙伴也试试吧

·END·

本文分享自微信公众号 - 小黄人打代码(MinionsCoding)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-08-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python实现在线翻译功能

    3.使用Google翻译来做,是由于Google提供的API有字节限制,每天只能翻译1000字。

    砸漏
  • Laravel框架实现调用百度翻译API功能示例

    本文实例讲述了Laravel框架实现调用百度翻译API功能。分享给大家供大家参考,具体如下:

    砸漏
  • 使用Uniread实现SQLplus翻页功能

        对于经常使用SQLplus的网友来说,SQLplus没有提供类似DOS工具的翻页功能,故不能实现SQL语句的来回翻动。现在我们有了Uniread, 减...

    Leshami
  • Android实现微信支付功能详解

    errCode:说明 0:成功……展示成功页面。 -1:错误……可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不...

    砸漏
  • Android实现页面翻转和自动翻转功能

    1. 效果图,本功能用了ViewFlipper和GestureDetector (手势检测器)两个关键技术点:

    砸漏
  • Python 调用有道翻译接口实现翻译

    最近为了熟悉一下 js 用有道翻译练了一下手,写一篇博客记录一下,也希望能对大家有所启迪,不过这些网站更新太快,可能大家尝试的时候会有所不同。

    砸漏
  • python实现谷歌翻译

    这个功能是在工作时,上级有个需求是让我将json文件中指定字段的英文翻译成中文,并且指定要使用谷歌翻译,理由是翻译的结果可能会比较准确。

    佛系编程人
  • python实现在线翻译

    砸漏
  • 详解TCP的重置功能和实现连接结束功能

    上一节我们完成了TCP三次握手原则,当双方通过三次握手交换了各自用于传递信息的参数后,双方进入数据分发模式,在TCP协议上说双方都进入了ESTABLISHED状...

    望月从良
  • python使用paramiko实现ssh的功能详解

    个人认为python的paramiko模块是运维人员必学模块之一,其ssh登录功能是旅行居家必备工具。

    砸漏
  • php+websocket 实现的聊天室功能详解

    本文实例讲述了php+websocket 实现的聊天室功能。分享给大家供大家参考,具体如下:

    砸漏
  • 基于attention的seq2seq机器翻译实践详解

    理理思路 文本处理,这里我是以eng_fra的文本为例,每行是english[tab]french,以tab键分割。获取文本,清洗。 分别建立字典,一个engl...

    zenRRan
  • ESP32 OTA详解-中文翻译版

    ESP32应用程序可以在运行时通过Wi-Fi或以太网从特定的服务器下载新图像,然后将其闪存到某些分区中,从而进行升级。在ESP-IDF中有两种方式可以进行空中(...

    小锋学长
  • Python实现翻译小工具

    利用Requests模块获取有道词典web页面的post信息,BeautifulSoup来获取需要的内容,通过tkinter模块生成gui界面。

    KaliArch
  • Python实现翻译小工具

    一、背景 利用Requests模块获取有道词典web页面的post信息,BeautifulSoup来获取需要的内容,通过tkinter模块生成gui界面。

    py3study
  • PHP连续签到功能实现方法详解

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序...

    砸漏
  • PHP开发实现快递查询功能详解

    背景:不久前,设计实现了京东api的功能,发现如果换了其它快递再重新设计,岂不是会浪费太多的时间,所以选个第三方提供的快递API是最为合理的,下面给出快递鸟和快...

    砸漏
  • iOS---UICollectionView详解和常用API翻译

    用户1941540
  • Android 8.0 功能和 API(翻译自Google官网)

    Android 8.0 为用户和开发者引入多种新功能。本文重点介绍面向开发者的新功能。

    蜻蜓队长

扫码关注云+社区

领取腾讯云代金券