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 相关文章推荐
php的计数器程序
Oct 09 PHP
PHP中的正规表达式(一)
Oct 09 PHP
JS 网站性能优化笔记
May 24 PHP
php入门之连接mysql数据库的一个类
Apr 21 PHP
PHP获取http请求的头信息实现步骤
Dec 16 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
May 23 PHP
discuz加密解密函数使用方法和中文注释
Jan 21 PHP
php插入排序法实现数组排序实例
Feb 16 PHP
PHP可变函数学习小结
Nov 29 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
Jul 09 PHP
PHP7内核之Reference详解
Mar 14 PHP
mac pecl 安装php7.1扩展教程
Oct 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
PHP安装memcached扩展笔记
2015/05/28 PHP
php微信公众号开发之翻页查询
2018/10/20 PHP
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
javascript getElementsByClassName函数
2010/04/01 Javascript
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
Node.js中你不可不精的Stream(流)
2018/06/08 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
实验室的标语
2014/06/20 职场文书
报效祖国演讲稿
2014/09/15 职场文书
煤矿施工安全协议书
2016/03/22 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书
用python实现监控视频人数统计
2021/05/21 Python
十大经典日本动漫排行榜 海贼王第三,犬夜叉仅第八
2022/03/18 日漫
Python读取和写入Excel数据
2022/04/20 Python