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 相关文章推荐
PHP脚本的10个技巧(6)
Oct 09 PHP
PHP 字符串分割和比较
Oct 06 PHP
win7下memCache的安装过程(具体操作步骤)
Jun 28 PHP
php三维数组去重(示例代码)
Nov 26 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
Oct 30 PHP
CI框架中cookie的操作方法分析
Dec 12 PHP
php文件操作相关类实例
Jun 18 PHP
php求一个网段开始与结束IP地址的方法
Jul 09 PHP
php array_values 返回数组的所有值详解及实例
Nov 12 PHP
thinkphp项目如何自定义微信分享描述内容
Feb 20 PHP
PHP封装的XML简单操作类完整实例
Nov 13 PHP
PHP实现简易计算器功能
Aug 28 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统计时间和内存使用情况示例分享
2014/03/13 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
jquery中one()方法的用法实例
2015/01/16 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
python实现的各种排序算法代码
2013/03/04 Python
详解Python中break语句的用法
2015/05/14 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
Python决策树和随机森林算法实例详解
2018/01/30 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
python集合的创建、添加及删除操作示例
2019/10/08 Python
pytorch进行上采样的种类实例
2020/02/18 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
strstr()的简单实现
2013/09/26 面试题
药剂专业自荐信范文
2014/04/16 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
2014年小学校长工作总结
2014/12/08 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
一劳永逸彻底解决pip install慢的办法
2021/05/24 Python
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL