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 相关文章推荐
将RTF格式的文件转成HTML并在网页中显示的代码
Oct 09 PHP
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
浅谈PHP 闭包特性在实际应用中的问题
Oct 30 PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
Jul 04 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
php抓取页面的几种方法详解
Jun 17 PHP
yii实现图片上传及缩略图生成的方法
Dec 04 PHP
php+mysql实现无限级分类
Nov 11 PHP
PHP实现分布式memcache设置web集群session同步的方法
Apr 10 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 PHP
PHP中ltrim()函数的用法与实例讲解
Mar 28 PHP
laravel配置Redis多个库的实现方法
Apr 10 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 curl实现抓取302跳转后页面的示例
2014/07/04 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
javascript改变position值实现菜单滚动至顶部后固定
2013/01/18 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
使用Plupload实现直接上传附件至七牛云存储
2014/12/26 Javascript
JavaScript中string转换成number介绍
2014/12/31 Javascript
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
2016/04/01 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
2018/03/10 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
python图片验证码生成代码
2016/07/02 Python
python的exec、eval使用分析
2017/12/11 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
利用python实现逐步回归
2020/02/24 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
html5的canvas方法使用指南
2014/12/15 HTML / CSS
HTML里显示pdf、word、xls、ppt的方法示例
2020/04/14 HTML / CSS
Expedia马来西亚旅游网站:廉价酒店,度假村和航班预订
2016/07/26 全球购物
J2EE面试题集锦(附答案)
2013/08/16 面试题
精彩的英文自荐信
2014/01/30 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
七年级数学教学反思
2016/02/17 职场文书
您对思维方式了解多少?
2019/12/09 职场文书
MySql分区类型及创建分区的方法
2022/04/13 MySQL