【2018/4】最新可用PHP在线调用谷歌在线翻译API代码

» 网络技术 » 【2018/4】最新可用PHP在线调用谷歌在线翻译API代码

在线调用谷歌在线翻译API,可以在一些项目中实现文本的自动翻译

【2018/4】最新可用PHP在线调用谷歌在线翻译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');

实际看下运行吧
【2018/4】最新可用PHP在线调用谷歌在线翻译API代码-极客公园

【2018/4】最新可用PHP在线调用谷歌在线翻译API代码-极客公园

我们在实际应用中可以这样

$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插件网

-- 完 --

发表评论

电子邮件地址不会被公开。 必填项已用*标注

7 Replies to “【2018/4】最新可用PHP在线调用谷歌在线翻译API代码”