注册有道智云,在线调用有道翻译资源
前言
网络上面关于翻译的资源其实只要两个的,一个是谷歌翻译,一个是有道翻译,谷歌最佳,有道次之,其他的目前来看还是不太行的,本次因为开发 52 插件网的关系,有大量的翻译需求,所以接触了有道的翻译,这里记录一下。
有道智云
网上搜索有道翻译的资源都是有道的 get 的 openapi,但是据说失效了,但是经过云落测试目前还是可以使用的,但是没法大量使用,所以这里注册了有道智云。
有道智云的产品就 4 个,都是核心产品,云落使用的就是翻译功能的,新注册用户有道还算厚道,送了 100 元,鉴于翻译功能费用还是比较便宜的,所以还是可以用一段时间的的。
使用代码
因为有道智云官方有 PHPdemo,所以直接将 demo 小小的改了下,直接拿来使用
//有道翻译 function ydtranslate($query){ $app_key = '************';//注册有道智云获取 $sec_key = '********************';//注册有道智云获取 $api_url = 'http://openapi.youdao.com/api';//可以使用 https $args = array( 'q' => $query, 'appKey' => $app_key, 'salt' => rand(10000,99999), 'from' => 'AUTO', 'to' => 'zh-CHS', ); $args['sign'] = buildSign($app_key, $query, $args['salt'], $sec_key); $ret = call($api_url, $args); //echo $ret; $ret = json_decode($ret, true)['translation'][0]; return $ret; } //加密 function buildSign($appKey, $query, $salt, $secKey){ $str = $appKey . $query . $salt . $secKey; $ret = md5($str); return $ret; } //发起网络请求 function call($url, $args=null, $method="post", $testflag = 0, $timeout = 20, $headers=array()){ $ret = false; $i = 0; while($ret === false){ if($i > 1) break; if($i > 0){ sleep(1); } $ret = callOnce($url, $args, $method, false, $timeout, $headers); $i++; } return $ret; } function callOnce($url, $args=null, $method="post", $withCookie = false, $timeout = 20, $headers=array()){ $ch = curl_init(); if($method == "post"){ $data = convert($args); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_POST, 1); }else{ $data = convert($args); if($data){ if(stripos($url, "?") > 0){ $url .= "&$data"; }else{ $url .= "?$data"; } } } curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if(!empty($headers)){ curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } if($withCookie){ curl_setopt($ch, CURLOPT_COOKIEJAR, $_COOKIE); } $r = curl_exec($ch); curl_close($ch); return $r; } function convert(&$args){ $data = ''; if (is_array($args)){ foreach ($args as $key=>$val){ if (is_array($val)){ foreach ($val as $k=>$v){ $data .= $key.'['.$k.']='.rawurlencode($v).'&'; } }else{ $data .="$key=".rawurlencode($val)."&"; } } return trim($data, "&"); } return $args; }
使用很简单
echo ydtranslate('I go to school');
和谷歌翻译的比较
这里正好有一段我正在翻译的内容,具体看下。
原文:
Displays count of your site visits.
Displays count of your site visits.
Shows the number of visits to your site today.
Updating every 5 minutes.
Allows you to choose one of your sites registered in Google Analytics.
P.S. Thanks for all your suggestions!
谷歌翻译内容:
显示您的网站访问次数。
显示您的网站访问次数。
显示今天您网站的访问次数。
每 5 分钟更新一次。
允许您选择在 Google Analytics 中注册的某个网站。
附: 谢谢你的所有建议!
有道翻译内容:
显示您的站点访问计数。
显示您的站点访问计数。
显示今天访问您站点的次数。
每 5 分钟更新。
允许您选择在谷歌分析中注册的站点之一。
附注:谢谢你的建议!
后语
我在使用有道翻译之后看了下百度翻译,发现百度翻译的 PHP demo 和有道翻译的 PHP demo 几乎一致,可以说除了调用的 api 不一样,基本上是一样的。
相关链接
有道智云-- 完 --
扫码订阅,第一时间获得更新
微信扫码二维码,订阅我们网站的动态,另外不定时发送 WordPress 小技巧,你可以随时退订,欢迎订阅哦~