这一篇文章将对大家每天都会关心的翻译功能进行开发,例如,用户发送消息 “翻译我爱你”,则会返回英文翻译。同时如果有需要可以进行多语种(日语等)开发。
1.首先我们对开发的思路进行简单的分析
当我们获取到了用户传来的数据时,对数据进行简单的分析
if(关键字含有‘翻译’&&翻译意外还有词组)
调用翻译接口进行翻译
else
return ‘‘
为什么是返回‘‘而不是false呢,
因为我们的微信公众号不仅仅只有翻译一种功能,我们还会额外开发天气预报,小黄鸡,地铁(公交查询)等功能。
2.翻译API
在这里我们使用有道翻译的接口进行测试。
小贴士:使用有道翻译接口时需要申请获取keyfrom,apikey。申请地址使劲戳这。
3.数据格式
xml 格式 <?xml version="1.0" encoding="UTF-8"?> <youdao-fanyi> <errorCode>0</errorCode> <!-- 有道翻译 --> <query><![CDATA[这里是有道翻译API]]></query> <translation> <paragraph><![CDATA[Here is the youdao translation API]]></paragraph> </translation> </youdao-fanyi> ------------------------------------- json 格式 { "errorCode":0 "query":"翻译", "translation":["translation"], // 有道翻译 "basic":{ "phonetic":"fān yì", "explains":[ "translate", "interpret" ] }, "web":[ { "key":"翻译", "value":["translator","translation","translate","Interpreter"] }, {...} ] }
事实上微信日志已经内置了数据格式的转换,这个阶段其实可以跳过,但是为了适应其他平台的开发,理解一下也是好的。
4.关键字判断以及翻译内容的获取
从消息的开头开始截取,截取两个字符,然后加以判断是否为 “翻译” 关键字。
$str_valid = mb_substr($keyword,0,-2,"UTF-8");
接下来进行待翻译内容提取:
$word = mb_substr($keyword,2,218,"UTF-8");
从消息的开头第3个字符开始截取,截取218个字符,截取出来的即为待翻译内容。
对于mb_substr用法不是很熟悉的同学可以查看一下PHP的官方解释。
5.具体实现
public function get_content($keyword) {//(输入出回复容的函数,这个函数名不能改) if(!empty( $keyword )) { $str_trans = mb_substr($keyword,0,2,"UTF-8"); $str_valid = mb_substr($keyword,0,-2,"UTF-8"); if($str_trans == ‘翻译‘ && !empty($str_valid)) { $word = mb_substr($keyword,2,202,"UTF-8"); //调用有道词典 $contentStr = $this->youdaoDic($word); return $contentStr.; } } return ‘‘; }
为了适应微信日志的开发关则,函数get_content($keyword)不能改变。
json格式的关键代码如下
public function youdaoDic($word){ $keyfrom = ""; //申请APIKEY时所填表的网站名称 $apikey = ""; //从有道申请的APIKEY $url_youdao = ‘http://fanyi.youdao.com/fanyiapi.do?keyfrom=‘.$keyfrom.‘&key=‘.$apikey.‘&type=data&doctype=json&version=1.1&q=‘.$word; $jsonStyle = file_get_contents($url_youdao); $result = json_decode($jsonStyle,true); $errorCode = $result[‘errorCode‘]; $trans = ‘‘; if(isset($errorCode)){ switch ($errorCode){ case 0: $trans = $result[‘translation‘][‘0‘];// 获取翻译结果 break; default: $trans = ‘出现异常‘;//无法进行有效翻译 break; } } return $trans; }
6.测试
7.结束语
本文主要介绍微信日志基础上的插件开发,如果有想知道一般情况下的开发方法,请私信(dinghinh154)联系或者留言都可以。
请关注80后宜昌打工仔微信公众帐号,基于wordpress平台开发,针对于主流的微信功能进行开发测试。
您可以关注80后宜昌打工仔公众帐号进行功能测试。