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 file_exists问题杂谈
May 07 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
May 23 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
Jun 18 PHP
使用Sphinx对索引进行搜索
Jun 25 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
PHP中Header使用的HTTP协议及常用方法小结
Nov 04 PHP
thinkphp文件处理类Dir.class.php的用法分析
Dec 08 PHP
php的GD库imagettftext函数解决中文乱码问题
Jan 24 PHP
php+xml结合Ajax实现点赞功能完整实例
Jan 30 PHP
php实现学生管理系统
Mar 21 PHP
php将文件夹打包成zip文件的简单实现方法
Oct 04 PHP
分享8个Laravel模型时间戳使用技巧小结
Feb 12 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中看实例学正则表达式
2006/12/25 PHP
php 日期时间处理函数小结
2009/12/18 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
2011/12/20 Javascript
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
2012/10/24 Javascript
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
Python中map和列表推导效率比较实例分析
2015/06/17 Python
Python中字符串格式化str.format的详细介绍
2017/02/17 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
Python如何根据时间序列数据作图
2020/05/12 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
用python制作个音乐下载器
2021/01/30 Python
3种方式实现瀑布流布局小结
2019/09/05 HTML / CSS
27个经典Linux面试题及答案,你知道几个?
2013/01/10 面试题
师范应届生语文教师求职信
2013/10/29 职场文书
项目合作协议书
2014/04/16 职场文书
经营理念口号
2014/06/21 职场文书
教师年终个人总结
2015/02/11 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
护士年终工作总结不会写?各科护士模板总结
2020/01/02 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP