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的curl实现get和post的代码
Aug 23 PHP
PHP 网络开发详解之远程文件包含漏洞
Apr 25 PHP
PHP中几个常用的魔术常量
Feb 23 PHP
PHP Global变量定义当前页面的全局变量实现探讨
Jun 05 PHP
php实现天干地支计算器示例
Mar 14 PHP
PHP如何实现跨域
May 30 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
Oct 28 PHP
php把字符串指定字符分割成数组的方法
Mar 12 PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 PHP
PHP+Ajax简单get验证操作示例
Mar 02 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
Apr 05 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下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
php文件上传的简单实例
2013/10/19 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
php查询操作实现投票功能
2016/05/09 PHP
PHP命名空间用法实例分析
2019/09/04 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
2019/12/13 PHP
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
2007/11/30 Javascript
通过JS 获取Mouse Position(鼠标坐标)的代码
2009/09/21 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
JS组件系列之Bootstrap table表格组件神器【终结篇】
2016/05/10 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
node.js 如何监视文件变化
2020/09/01 Javascript
[35:27]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第二场 10.29
2020/10/29 DOTA
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
Python 自动化表单提交实例代码
2017/06/08 Python
python thrift搭建服务端和客户端测试程序
2018/01/17 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
Python运算符+与+=的方法实例
2021/02/18 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
canvas使用注意点总结
2013/07/19 HTML / CSS
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
自荐书格式
2013/12/01 职场文书
多媒体教室标语
2014/06/26 职场文书
导游词之大雁塔景区
2019/09/17 职场文书
一行代码python实现文件共享服务器
2021/04/22 Python