话不多说,直接上代码
下面我用了百度翻译API和谷歌翻译提供的api
<?php
class AutoTranslate
{
public function __construct()
{
/*
* 设定百度翻译接口配置
*/
$this->api = "http://api.fanyi.baidu.com/api/trans/vip/translate";
$this->appid = "xxxxx"; //百度api用户ID
$this->key = "xxxxx"; //百度api用户KEY
//回调URL
/*
* 谷歌翻译接口配置
*/
}
/*
入口函数
需要配置的参数:
1、语言包数据
2、需要翻译的结果语言
3、按(数组)键翻译/按(数组)值翻译
4、配置语言包输出格式 (php数组,json,js数组)
输出
程序会按照结果语言名称在当前目录下生成对应的语言包文件 例如:zh.txt(中文语言包)
*/
public function index()
{
// 1、输入语言包
$langs = array(
"reg"=>array(
"a0"=>"手机注册",
),
"safe"=>array(
"a0"=>"解绑",
),
);
$tos = array('de', 'fra','spa','it','swe','fin','pl','pt'); // 2、需要翻译的结果语言多个语言用逗号(,)隔开
$kv = 'v'; //3、k:键、v:值 设置键/值来翻译(用数组的键/值作为翻译结果)
$format = 'json'; // 4、语言包输出格式 php:php数组,js:js数组,json:json数据格式
// 配置到此结束,下面不需要配置
// 判断输入参数是否正确
if (!in_array($kv, array('k', 'v'))) {
die('请设置翻译键/值参数(k/v)');
}
if (!in_array($format, array('php', 'json', 'js'))) {
die('请输入正确的输出数据格式(php,json,js)');
}
$this->tran_arr($langs, 'auto', $tos, $kv, $format);
}
/*
* 数据格式转换,
* 将js数组格式,json格式数据,自动转换为php数组
*
*/
public function convertData()
{
}
/*
* 输入语言
* 参数 $langs : 需要翻译的数组
* 参数 $from : 翻译的源语言 aoto自动检测 yue粤语 zh中文 http://api.fanyi.baidu.com/doc/21
* 参数 $tos : 需要翻译的目标语言数组
* 参数 $kv : 键/值作为翻译的参数
* 参数 $format : 输出数据格式 1:json,2:php,3:js
* 返回 string 返回翻译结果
*/
public function tran_arr($langs = array(), $from = 'auto', $tos