这一篇文章将对大家每天都会关心的翻译功能进行开发,例如,用户发送消息 “翻译我爱你”,则会返回英文翻译。同时如果有需要可以进行多语种(日语等)开发。
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后宜昌打工仔公众帐号进行功能测试。

原文:http://www.cnblogs.com/dinghing154/p/4361237.html