网站开发

包含所有网站建设开发相关的教程内容,如CSS教程、JS教程、html教程,服务器配置,域名空间的购买教程。

无需任何Api的在线翻译功能

发表于:2019-05-28 11:24:21 | 点击: | 栏目:

网站开发

收藏(0)

今天分享一个 php 的翻译类模块,这个模块是之前在 thinkphp 的论坛里淘到的。小试了一下,效果非常不错!于是果断搬过来收藏。

<?php  
// +----------------------------------------------------------------------
// | PHP MVC FrameWork v1.0 在线翻译类 使用百度翻译接口 无需申请Api Key
// +----------------------------------------------------------------------
// | Copyright (c) 2014-2099 http://qiling.org All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: qiling <70419470@qq.com> 2015年4月13日 下午2:22:15
// +----------------------------------------------------------------------
/**
* 在线翻译类
* @author qiling <70419470@qq.com>
*/
classTranslate {  
/**
* 支持的语种
* @var ArrayAccess
*/
static$Lang= Array (  
'auto' => '自动检测',  
'ara' => '阿拉伯语',  
'de' => '德语',  
'ru' => '俄语',  
'fra' => '法语',  
'kor' => '韩语',  
'nl' => '荷兰语',  
'pt' => '葡萄牙语',  
'jp' => '日语',  
'th' => '泰语',  
'wyw' => '文言文',  
'spa' => '西班牙语',  
'el' => '希腊语',  
'it' => '意大利语',  
'en' => '英语',  
'yue' => '粤语',  
'zh' => '中文'   
);  
/**
* 获取支持的语种
* @return array 返回支持的语种
*/
staticfunctiongetLang() {  
returnself::$Lang;  
}  
/**
* 执行文本翻译
* @param string $text 要翻译的文本
* @param string $from 原语言语种 默认:中文
* @param string $to 目标语种 默认:英文
* @return boolean string 翻译失败:false 翻译成功:翻译结果
*/
staticfunctionexec($text, $from= 'zh', $to= 'en') {  
// http://fanyi.baidu.com/v2transapi?from=zh&query=%E7%94%A8%E8%BD%A6%E8%B5%84%E8%AE%AF&to=fra
$url= "http://fanyi.baidu.com/v2transapi";  
$data= array(  
'from' => $from,  
'to' => $to,  
'query' => $text
);  
$data= http_build_query ( $data);  
$ch= curl_init ();  
curl_setopt ( $ch, CURLOPT_URL, $url);  
curl_setopt ( $ch, CURLOPT_REFERER, "http://fanyi.baidu.com");  
curl_setopt ( $ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; rv:37.0) Gecko/20100101 Firefox/37.0' );  
curl_setopt ( $ch, CURLOPT_HEADER, 0 );  
curl_setopt ( $ch, CURLOPT_POST, 1 );  
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data);  
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );  
curl_setopt ( $ch, CURLOPT_TIMEOUT, 10 );  
$result= curl_exec ( $ch);  
curl_close ( $ch);  
$result= json_decode ( $result, true );  
if(!isset($result['trans_result'] ['data'] ['0'] ['dst'])){  
returnfalse;   
}  
return$result['trans_result'] ['data'] ['0'] ['dst'];  
}  
}  
// 使用示例:
echoTranslate::exec( "你好,世界!");