thinkPHP多语言切换设置方法详解


Posted in PHP onNovember 11, 2016

本文实例讲述了thinkPHP多语言切换设置方法。分享给大家供大家参考,具体如下:

thinkphp多语言设置有点‘高大上',为什么说它有点‘高大上'呢?因为本人设置了好久才弄好,而本人之所以弄了好久的原因,竟然是因为‘开启语言设置必须得先开启初始化系统的行为类',所以,在这里,因为本人的经验有限,姑且认为tp的多语言设置必须的先初始化tp的CheckLangBehavior.class.php

怎么初始化CheckLangBehavior.class.php呢?下面进行讲解。

tp框架下面,所有模块初始化CheckLangBehavior.class.php,下面截图:

thinkPHP多语言切换设置方法详解

路径大家应该看得懂吧,就在你的公用模块配置文件config.php那里新建一个tags.php就行了,tags.php的内容如下:

<?php
return array(
//app_begin这个行为标签,其实就是tp的内置标签,作用是在tp初始化的时候,触发某个行为,在这里设置当然是触发多语言的功能了
'app_begin' => array('Behavior\CheckLangBehavior'),//开启语言功能
);

上面的checkLangBehavior.class.php在tp的内置行为类文件夹下面,截图证明一下先:

thinkPHP多语言切换设置方法详解

这个类和上面那个类是不是一模一样啊?你自己可以进入tp框架的Library/Behavior的文件夹里面看看这个类是否存在,它里面的内容到底是什么,这里就不解析了。

配置好了上面的tags.php之后,我们就必须配置tp的配置文件config.php了

这个config.php就在上面的第一个截图中,你只要在那里添加下面的代码:

'LANG_SWITCH_ON'  => true,    //开启多语言支持开关
'DEFAULT_LANG'    => 'zh-cn',  // 默认语言
'LANG_LIST'    => 'zh-cn,en-us', // 允许切换的语言列表 用逗号分隔
'LANG_AUTO_DETECT'  => true,  // 自动侦测语言

配置好这个之后就是多语言的文件配置了,不多说,截图:

thinkPHP多语言切换设置方法详解

下面是配置en-us.php文件中的代码:

<?php
return array(
  /* 核心语言变量 */
  '_WEB_NAME_'   => 'TRAVEL',
  '_WELLCOME_'   => 'Wellcome here!',
);

zh-cn.php文件中的代码:

<?php
return array(
  /* 核心语言变量 */ 
  '_WEB_NAME_'   => '来往',
  '_WELLCOME_'   => '欢迎来往!',
);

下面是我IndexController.class.php的lang方法的代码:

public function lang(){
    $wellcome = L('_WELLCOME_');
    $this->assign('wellcome', $wellcome);
    $this->display();
}

这是我的IndexController.class.php控制器中的lang方法下面的默认模板lang.html,下面就可以做测试了,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
  <title>Tp语言设置测试</title>
  <meta name="keywords" content="关键字列表" />
  <meta name="description" content="网页描述" />
  <link rel="stylesheet" type="text/css" href="" />
  <style type="text/css"></style>
  <script type="text/javascript"></script>
</head>
<body>
<p>{$wellcome}</p>
<p>切换到:<a href="?l=zh-cn">简体中文</a> | <a href="?l=en-us">English</a></p>
</body>
</html>

测试结果如下:

thinkPHP多语言切换设置方法详解

你可以点击切换语言,假如出现中英文转化就对了

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
如何在WIN2K下安装PHP4.04
Oct 09 PHP
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
php写的带缓存数据功能的mysqli类
Sep 06 PHP
深入eAccelerator与memcached的区别详解
Jun 06 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
php获取本机真实IP地址实例代码
Mar 31 PHP
php生成图片验证码的方法
Apr 15 PHP
smarty模板数学运算示例
Dec 11 PHP
轻松实现php文件上传功能
Feb 17 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
Jul 19 PHP
PHP7创建销毁session的实例方法
Feb 03 PHP
PHP使用PDO 连接与连接管理操作实例分析
Apr 21 PHP
thinkPHP中钩子的两种配置调用方法详解
Nov 11 #PHP
php基于闭包实现函数的自调用(递归)实例分析
Nov 11 #PHP
php使用高斯算法实现图片的模糊处理功能示例
Nov 11 #PHP
PHP实现的方程求解示例分析
Nov 11 #PHP
php5.3后静态绑定用法详解
Nov 11 #PHP
php基于curl实现的股票信息查询类实例
Nov 11 #PHP
PHP中STDCLASS用法实例分析
Nov 11 #PHP
You might like
php win下Socket方式发邮件类
2009/08/21 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
重新认识php array_merge函数
2014/08/31 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
漂亮的widgets,支持换肤和后期开发新皮肤
2007/04/23 Javascript
JS window.opener返回父页面的应用
2009/10/24 Javascript
js window.print实现打印特定控件或内容
2013/09/16 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
angular.js指令中的controller、compile与link函数的不同之处
2017/05/10 Javascript
微信小程序 共用变量值的实现
2017/07/12 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
linux下python使用sendmail发送邮件
2018/05/22 Python
Python实现的建造者模式示例
2018/08/06 Python
python爬取微信公众号文章
2018/08/31 Python
python 列表输出重复值以及对应的角标方法
2019/06/11 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
Django权限设置及验证方式
2020/05/13 Python
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
linux面试题参考答案(6)
2014/08/29 面试题
办公室秘书自我鉴定
2014/01/18 职场文书
青年教师师德演讲稿
2014/08/26 职场文书
欠条范文
2015/07/03 职场文书
清明扫墓感想
2015/08/11 职场文书
详解OpenCV获取高动态范围(HDR)成像
2022/04/29 Python
Go 内联优化让程序员爱不释手
2022/06/21 Golang
spring boot实现文件上传
2022/08/14 Java/Android