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如何透过ODBC来存取数据库
Oct 09 PHP
实现分十页分向前十页向后十页的处理
Oct 09 PHP
PHP 编程安全性小结
Jan 08 PHP
PHP 八种基本的数据类型小结
Jun 01 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 PHP
thinkphp的CURD和查询方式介绍
Dec 19 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
Oct 30 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
详解PHP的Yii框架中的Controller控制器
Mar 29 PHP
php对接java现实加签验签的实例
Nov 25 PHP
PHP进程通信基础之信号量与共享内存通信
Feb 19 PHP
对laravel in 查询的使用方法详解
Oct 09 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
一个用于网络的工具函数库
2006/10/09 PHP
Windows下安装Memcached的步骤说明
2010/04/25 PHP
PHP通用检测函数集合
2011/02/08 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
php微信公众号开发之翻页查询
2018/10/20 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
2020/04/06 PHP
实例讲解PHP表单
2020/06/10 PHP
js如何取消事件冒泡
2013/09/23 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
Sea.JS知识总结
2016/05/05 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
Selenium定位元素操作示例
2018/08/10 Python
Python中最大递归深度值的探讨
2019/03/05 Python
python实现视频分帧效果
2019/05/31 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
python中JWT用户认证的实现
2020/05/18 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
美国新兴城市生活方式零售商:VILLA
2017/12/06 全球购物
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
高三语文教学反思
2014/01/15 职场文书
环保倡议书100字
2014/05/15 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
大学生党员个人对照检查材料范文
2014/09/25 职场文书
走群众路线学习笔记
2014/11/06 职场文书
财务会计岗位职责
2015/02/03 职场文书
学校远程教育工作总结
2015/08/11 职场文书
银行柜员优质服务心得体会
2016/01/22 职场文书
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS