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 相关文章推荐
ob_start(),ob_start('ob_gzhandler')使用
Dec 25 PHP
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
Dec 31 PHP
php自动跳转中英文页面
Jul 29 PHP
解析PHP中数组元素升序、降序以及重新排序的函数
Jun 20 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
最新最全PHP生成制作验证码代码详解(推荐)
Jun 12 PHP
php is_executable判断给定文件名是否可执行实例
Sep 26 PHP
PHP使用两个栈实现队列功能的方法
Jan 15 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
PHP模型Model类封装数据库操作示例
Mar 14 PHP
php桥接模式应用案例分析
Oct 23 PHP
php的instanceof和判断闭包Closure操作示例
Jan 26 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脚本的10个技巧(5)
2006/10/09 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
具有时效性的php加密解密函数代码
2013/06/19 PHP
浅析php原型模式
2014/11/25 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
javascript与Python快速排序实例对比
2015/08/10 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
基于JavaScript实现轮播图效果
2021/01/02 Javascript
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
Python如何获取Win7,Win10系统缩放大小
2020/01/10 Python
Python 合并拼接字符串的方法
2020/07/28 Python
HTML5新增的标签和属性归纳总结
2018/05/02 HTML / CSS
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
如何提高MySql的安全性
2014/06/19 面试题
会计专业毕业生自我鉴定
2013/10/29 职场文书
竞选班委演讲稿
2014/04/28 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
钱学森电影观后感
2015/06/04 职场文书
详细介绍python操作RabbitMq
2022/04/12 Python