CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能


Posted in PHP onJuly 18, 2014

本文以实例讲述了CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能,对于网站开发来说非常实用。

具体操作方法如下:

语言包文件如下:

application\language\english\bm_lang.php
application\language\zh-cn\bm_lang.php

注意:
1. “_lang.php”的前缀要一致;
2. 如果还有其他语言包,可创建文件application\language\***\bm_lang.php(***为自己取的名字,以对应不同的语言)

实现代码如下:

public function lang($line,$param = array())
{ 

 //判断浏览器语言
 $default_lang_arr = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
 $strarr = explode(",",$default_lang_arr);
 $default_lang = $strarr[0];
 // echo '1'.$default_lang;
 
 // 根据浏览器类型设置语言
 if( $default_lang == 'en-us' || $default_lang == 'en'){
 $this->config->set_item('language', 'english');
 // 根据设置的语言类型加载语言包
 $this->load->language('bm','english');
 }else{
 $this->config->set_item('language', 'zh-cn');
 $this->load->language('bm','zh-cn');
 }
 
 // 当前语言
 // echo '2'.$this->config->item('language');
 
 // 根据语言包中的某个语言标记的翻译,判断是否使用了语言包
 $line = 'title'; 
 $param = array();
 // $CI = & get_instance();
 // $line = $CI->lang->line($line);
 // 上面两行等价于下面一行,& get_instance()实例化
 $line = $this->lang->line('title');
 if(is_array($param) && count($param) > 0) {
 array_unshift($param, $line);
 $line = call_user_func_array('sprintf', $param);
 }
 echo '^_^'.$line;
}
PHP 相关文章推荐
增加反向链接的101个方法 站长推荐
Jan 31 PHP
DedeCMS 核心类TypeLink.class.php摘要笔记
Apr 07 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
Jul 18 PHP
php计算数组不为空元素个数的方法
Jan 27 PHP
PHP采用get获取url汉字出现乱码的解决方法
Nov 13 PHP
php 二维数组时间排序实现代码
Nov 19 PHP
CI框架数据库查询缓存优化的方法
Nov 21 PHP
php 5.4 全新的代码复用Trait详解
Jan 05 PHP
Laravel框架实现利用中间件进行操作日志记录功能
Jun 06 PHP
Laravel框架模型的创建及模型对数据操作示例
May 07 PHP
PHP7原生MySQL数据库操作实现代码
Jul 03 PHP
php png失真的原因及解决办法
Nov 17 PHP
简单实用的网站PHP缓存类实例
Jul 18 #PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 #PHP
ThinkPHP采用实现三级循环代码实例
Jul 18 #PHP
ThinkPHP字符串函数及常用函数汇总
Jul 18 #PHP
ThinkPHP关于session的操作方法汇总
Jul 18 #PHP
php中实现精确设置session过期时间的方法
Jul 17 #PHP
ThinkPHP跳转页success及error模板实例教程
Jul 17 #PHP
You might like
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
php根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
PHP使用文件锁解决高并发问题示例
2018/03/29 PHP
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
一个简单的瀑布流效果(主体形式自写)
2013/05/27 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
Sortable.js拖拽排序使用方法解析
2016/11/04 Javascript
移动端js图片查看器
2016/11/17 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
详解AngularJS之$window窗口对象
2018/01/17 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
ES6中定义类和对象的方法示例
2019/07/31 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
Python设置默认编码为utf8的方法
2016/07/01 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
Python求凸包及多边形面积教程
2020/04/12 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
教师自我评价范例
2013/09/24 职场文书
医学毕业生自荐信
2013/10/11 职场文书
委托书范文
2014/04/02 职场文书
三年级小学生评语
2014/04/22 职场文书
调研汇报材料范文
2014/08/17 职场文书
活动总结格式
2014/08/30 职场文书
优秀教育工作者事迹材料
2014/12/24 职场文书
apache基于端口创建虚拟主机的示例
2021/04/24 Servers
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android