在线调用谷歌在线翻译API,可以在一些项目中实现文本的自动翻译
前沿
说到翻译,那么首推谷歌翻译,不得不说谷歌在翻译方面做得很好,今天云落需要用到翻译,国内几个翻译都不太尽如人意,但是谷歌却非常不错的完成了任务,这里说的不是在网页中使用,而是在代码里面作为api使用的,百度和有道的翻译api我都试用了一下,都不太行,只能选择了谷歌的。
需求
云落最近在做我爱Chrome插件网,里面需要翻译插件摘要和说明,如果都是手动翻译,那么太费事了,所以我追求是在发布文章的时候就自动翻译成中文,百度了下,发现谷歌翻译api需要的挺多的,但是很多文章的方法都失效了,或者比较麻烦,云落当然是比较懒的,所以自己研究下,总算是不需要TKK就能实现在线翻译,至少可以省却了手动翻译英文说明的步骤了。
代码
因为云落是应用在WordPress里面,所以只弄了个PHP版本的,当然,其实有能力的一看就懂,代码瞎凑的,如果有能改进的地方还请指出啊。
<?php $longtext = 'Joymems, Get nostalgic. See your own photos on every new Chrome tab. Spice up your new tabs with YOUR photos. Every new tab will show your memories from your photo albums. Simple, intuitive and personal. See the people you love, the moments you care about, the things that inspire you. Your photos, your story!'; function gtranslate($text){ $entext = urlencode($text); $url = 'http://translate.google.cn/translate_a/single?client=gtx&dt=t&ie=UTF-8&oe=UTF-8&sl=auto&tl=zh-CN&q='.$entext; set_time_limit(0); $ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_MAXREDIRS,20); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 40); curl_setopt($ch, CURLOPT_URL, $url); $result = curl_exec($ch); curl_close($ch); $result = json_decode($result); if(!empty($result)){ foreach($result[0] as $k){ $v[] = $k[0]; } return implode(" ", $v); } } echo gtranslate($longtext); ?>
当文本量比较大的时候可能会出现空白情况
将上面代码放进自己服务器里面运行下,就能看到翻译的结果了。,结果是:
Joymems,怀旧。 在每个新的Chrome标签上查看您自己的照片。\n 用您的照片为您的新标签添彩。 每个新标签都会显示你的相册。 简单,直观和个人。\n\n 看到你爱的人,你关心的时刻,激励你的事物。 你的照片,你的故事!\n\n 它是私人的和免费的。
仅限英文时候翻译
本来云落已经实现了翻译这个功能,后来发现无论什么语言都会翻译一边,如果是中文的时候,那就不必要了,所以对翻译这个过程做个判定,本来是想用正则的,但是觉得效率不太好,所以用了另一个方法,其实也很简单,那就是比较文本的长度。
利用下面的代码就可以判断文本是否是英语
$text = 'i go to school'; $v = strlen($text); $k = mb_strlen($text,'utf-8');
$text = 'i go to school 啊啊'; $v = strlen($text); $k = mb_strlen($text,'utf-8'); if($v = $k){ $result = gtranslate($text); } echo $result;
最后
最后展示下最近在做的另一个网站,我爱Chrome插件网,主要是做Chrome浏览器的插件下载服务的,WordPress网站,主题是Git,在Git上面我又定制开发了一些功能。
我爱Chrome插件网
-- 完 --
测试返回结果,只有“Joymems,怀旧。”,不知什么原因,请予以解答,谢谢
@dev 代码问题,已更新
@云落 测试了,正常运行,非常感谢
666,云落太棒了,健康第一站发来贺电
签到成功!签到时间:2018-04-15 23:54:29,每日打卡,生活更精彩哦~
我爱 Chrome 插件网 这个建站速度和充实网站内容的速度真的很给力
52插件网完全是全自动的了~厉害~