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 相关文章推荐
IIS+PHP+MySQL+Zend配置 (视频教程)
Dec 13 PHP
PHP简单系统查询模块代码打包下载
Jun 07 PHP
php结合表单实现一些简单功能的例子
Jun 04 PHP
apache+php完美解决301重定向的两种方法
Jun 08 PHP
PHP数组及条件,循环语句学习
Nov 11 PHP
探讨如何在PHP开启gzip页面压缩实例
Jun 09 PHP
如何用C语言编写PHP扩展的详解
Jun 13 PHP
配置Nginx+PHP的正确思路与过程
May 10 PHP
万能的php分页类
Jul 06 PHP
PHP常量define和const的区别详解
May 18 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 PHP
php中yii框架实例用法
Dec 22 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+MYSQL的文章管理系统(二)
2006/10/09 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
2016/03/25 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
javascript之AJAX框架使用说明
2010/04/24 Javascript
两个select多选模式的选项相互移动(示例代码)
2014/01/11 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
2017/09/11 jQuery
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
vue用elementui写form表单时,在label里添加空格操作
2020/08/13 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
python脚本实现查找webshell的方法
2014/07/31 Python
使用Python制作微信跳一跳辅助
2018/01/31 Python
python实现遍历文件夹修改文件后缀
2018/08/28 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
Django关于admin的使用技巧和知识点
2020/02/10 Python
CSS3 3D制作实战案例分析
2016/09/18 HTML / CSS
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
2014最新房贷收入证明范本
2014/09/12 职场文书
2015年企业新年寄语
2014/12/08 职场文书
大学生入党自荐书
2015/03/05 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书