Thinkphp3.2.3多语言翻译以及使用百度翻译的示例分析
这篇文章将为大家详细讲解有关Thinkphp3.2.3多语言翻译以及使用百度翻译的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
一、Thinkphp多语言翻译
首先在Common/conf/config.php文件中写入如下内容:
<?php
return array(
//'配置项'=>'配置值'
//语言包配置
'LANG_SWITCH_ON' => true, // 开启语言包功能
'LANG_AUTO_DETECT' => true, // 自动侦测语言 开启多语言功能后有效
'LANG_LIST' => 'zh-cn,en-us,zh-tw', //必须写可允许的语言列表
'VAR_LANGUAGE' => 'l', // 默认语言切换变量
);
?>
然后在Common/conf文件夹下新建一个tags.php文件,写入内容:
<?php
return array(
// 添加下面一行定义即可
'app_begin' => array('Behavior\CheckLangBehavior'),
);
?>
当然还要写入自己的语言包文件,在Think/Lang/下面有四个语言包文件,你可以在这四个或新建语言包文都可以,或者你在模块下面新建一个Lang文件夹,比如Home/Lang,在下面新增zh-cn.php,en-us.php等等语言包文件。简体中文语言包可以这样写如下:
<?php
return array(
'_Login' => "登录",
);
英文语言包可以这样写如下:
<?php
return array(
'_Login' => "Login",
);
然后随便在一个页面,写入如下内容:
{$Think.lang._Login}
最后在浏览器访问该页面,即可看到,比如在地址栏输入如下URL:
http://localhost/index.php?l=zh-cn
http://localhost/index.php?l=en-us
这样就可以看到中英文切换了,大家可以自己试一试。
二、使用百度翻译
我这里说的百度翻译并不是在http://fanyi.baidu.com/这个网址中输入内容点击翻译这样的,这里我是以代码的形式利用CURL进行翻译的。
翻译文件放在/Home/Common/function.php中,内容如下:
<?php
class Translate {
static $Lang = Array (
'auto' => '自动检测',
'en' => '英语',
'zh' => '中文',
'cht' => '中文繁体',
);
static function getLang() {
return self::$Lang;
}
static function exec($text, $from = 'zh', $to = 'en') {
$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, 5 );
$result = curl_exec ( $ch );
curl_close ( $ch );
$result = json_decode ( $result, true );
// 出错状态码 999
if ($result ['error']) {
return false;
}
return $result ['trans_result'] ['data'] ['0'] ['dst'];
}
}
?>
大家可以根据自己的需求对其进行修改。
echo Translate::exec ( "大家好","zh",“en”); //这里输出是:Hello everyone
这样就翻译成功了。
关于“Thinkphp3.2.3多语言翻译以及使用百度翻译的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341