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 相关文章推荐
MYSQL数据库初学者使用指南
Nov 16 PHP
php SQL Injection with MySQL
Feb 27 PHP
PHP获取文件后缀名的三个函数
Oct 15 PHP
php轻松实现中英文混排字符串截取
May 28 PHP
Yii核心组件AssetManager原理分析
Dec 02 PHP
PHP使用NuSOAP调用Web服务的方法
Jul 18 PHP
PHP中JSON的应用技巧
Oct 10 PHP
Yii2分页的使用及其扩展方法详解
May 23 PHP
PHP编写的图片验证码类文件分享
Jun 06 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 PHP
PHP实现上传多文件示例代码
Feb 20 PHP
PHP中PDO事务处理操作示例
May 02 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运行模式的深入理解
2013/06/03 PHP
ThinkPHP之A方法实例讲解
2014/06/20 PHP
thinkphp分页实现效果
2016/10/13 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
使用jquery实现简单的ajax
2013/07/08 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
Bootstrap Table使用方法解析
2016/10/19 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
wxpython 学习笔记 第一天
2009/02/09 Python
Python的lambda匿名函数的简单介绍
2013/04/25 Python
Python3基础之基本运算符概述
2014/08/13 Python
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
Python基于回溯法子集树模板解决全排列问题示例
2017/09/07 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
2020/07/14 Python
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
房地产还款计划书
2014/01/10 职场文书
个人借款担保书
2014/04/02 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
2014年政府采购工作总结
2014/12/09 职场文书
报案材料怎么写
2015/05/25 职场文书
公司回复函格式
2015/07/14 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
MySQL如何构建数据表索引
2021/05/13 MySQL
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫