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 相关文章推荐
一个ftp类(ini.php)
Oct 09 PHP
php iconv() : Detected an illegal character in input string
Dec 05 PHP
批量去除PHP文件中bom的PHP代码
Mar 13 PHP
ThinkPHP中关联查询实例
Dec 02 PHP
php基于socket实现SMTP发送邮件的方法
Mar 05 PHP
php中PDO方式实现数据库的增删改查
May 17 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
PHP生成推广海报的方法分享
Apr 22 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
Feb 15 PHP
thinkPHP和onethink微信支付插件分享
Aug 11 PHP
phpQuery采集网页实现代码实例
Apr 02 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
May 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
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
PHP扩展开发入门教程
2015/02/26 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
PHP多维数组遍历方法(2种实现方法)
2015/12/10 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
PHP无限极分类函数的实现方法详解
2017/04/15 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
使用JavaScript进行表单校验功能
2017/08/01 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
javascript实现点击星星小游戏
2019/12/24 Javascript
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python中装饰器的一个妙用
2015/02/08 Python
Python yield 使用浅析
2015/05/28 Python
Python编程中实现迭代器的一些技巧小结
2016/06/21 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
python中count函数知识点浅析
2020/12/17 Python
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
理工学院学生自我鉴定
2014/02/23 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
2015年中秋寄语
2015/07/31 职场文书