600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > php多语言翻译替换 Thinkphp3.2.3多语言翻译以及使用百度翻译

php多语言翻译替换 Thinkphp3.2.3多语言翻译以及使用百度翻译

时间:2024-05-07 06:56:04

相关推荐

php多语言翻译替换 Thinkphp3.2.3多语言翻译以及使用百度翻译

一、Thinkphp多语言翻译

首先在Common/conf/config.php文件中写入如下内容:<?php

returnarray(

//'配置项'=>'配置值'

//语言包配置

'LANG_SWITCH_ON'=>true,//开启语言包功能

'LANG_AUTO_DETECT'=>true,//自动侦测语言开启多语言功能后有效

'LANG_LIST'=>'zh-cn,en-us,zh-tw',//必须写可允许的语言列表

'VAR_LANGUAGE'=>'l',//默认语言切换变量

);

?>

然后在Common/conf文件夹下新建一个tags.php文件,写入内容:<?php

/**

*语言包配置文件

*/

returnarray(

//添加下面一行定义即可

'app_begin'=>array('Behavior\CheckLangBehavior'),

);

?>

当然还要写入自己的语言包文件,在Think/Lang/下面有四个语言包文件,你可以在这四个或新建语言包文都可以,或者你在模块下面新建一个Lang文件夹,比如Home/Lang,在下面新增zh-cn.php,en-us.php等等语言包文件。简体中文语言包可以这样写如下:<?php

/**

*简体中文语言包

*/

returnarray(

'_Login'=>"登录",

);

英文语言包可以这样写如下:<?php

/**

*英文语言包

*/

returnarray(

'_Login'=>"Login",

);

然后随便在一个页面,写入如下内容:{$Think.lang._Login}

最后在浏览器访问该页面,即可看到,比如在地址栏输入如下URL:http://localhost/index.php?l=zh-cn

http://localhost/index.php?l=en-us

这样就可以看到中英文切换了,大家可以自己试一试。

二、使用百度翻译

我这里说的百度翻译并不是在/这个网址中输入内容点击翻译这样的,这里我是以代码的形式利用CURL进行翻译的。

翻译文件放在/Home/Common/function.php中,内容如下:<?php

classTranslate{

/**

*支持的语种

*@varArrayAccess

*/

static$Lang=Array(

'auto'=>'自动检测',

'en'=>'英语',

'zh'=>'中文',

'cht'=>'中文繁体',

);

/**

*获取支持的语种

*@returnarray返回支持的语种

*/

staticfunctiongetLang(){

returnself::$Lang;

}

/**

*执行文本翻译

*@paramstring$text要翻译的文本

*@paramstring$from原语言语种默认:中文

*@paramstring$to目标语种默认:英文

*@returnbooleanstring翻译失败:false翻译成功:翻译结果

*/

staticfunctionexec($text,$from='zh',$to='en'){

$url="/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,"");

curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0(WindowsNT6.1;rv:37.0)Gecko/0101Firefox/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']){

returnfalse;

}

return$result['trans_result']['data']['0']['dst'];

}

}

?>

大家可以根据自己的需求对其进行修改。echoTranslate::exec("大家好","zh",“en”);//这里输出是:Helloeveryone

这样就翻译成功了。

希望对大家有所帮助!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。