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 各种排序算法实现代码
Aug 20 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
Jul 15 PHP
PHP 透明水印生成代码
Aug 27 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
php出现内存位置访问无效错误问题解决方法
Aug 16 PHP
最新制作ThinkPHP3.2.3完全开发手册
Nov 23 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
Dec 17 PHP
PHP汉字转换拼音的函数代码
Dec 30 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
Jan 07 PHP
PHP简单获取及判断提交来源的方法
Apr 22 PHP
PHP基于面向对象实现的留言本功能实例
Apr 04 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
Aug 10 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 UTF-8、Unicode和BOM问题
2010/05/18 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
2015/03/25 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
原生javascript实现图片滚动、延时加载功能
2015/01/12 Javascript
JS+CSS实现电子商务网站导航模板效果代码
2015/09/10 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
浅谈js中几种实用的跨域方法原理详解
2016/12/02 Javascript
Ajax基础知识详解
2017/02/17 Javascript
JAVA中截取字符串substring用法详解
2017/04/14 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
Python中一行和多行import模块问题
2018/04/01 Python
python读取TXT每行,并存到LIST中的方法
2018/10/26 Python
python实现逐个读取txt字符并修改
2018/12/24 Python
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
python将字母转化为数字实例方法
2019/10/04 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
SmartBuyGlasses台湾:名牌眼镜,名牌太阳眼镜及隐形眼镜
2017/01/04 全球购物
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
自荐信怎么写呢?
2013/12/09 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
世界红十字日活动总结
2015/02/10 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
企业团队精神心得体会
2016/01/19 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
Python 内置函数速查表一览
2021/06/02 Python