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 相关文章推荐
怎样在UNIX系统下安装php3
Oct 09 PHP
php email邮箱正则
Oct 08 PHP
PHP不用第三变量交换2个变量的值的解决方法
Jun 02 PHP
PHP获取当前完整URL地址的函数
Dec 21 PHP
Laravel5中contracts详解
Mar 02 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
Mar 03 PHP
PHP会话控制实例分析
Dec 24 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
详解cookie验证的php应用的一种SSO解决办法
Oct 20 PHP
PHP中创建和编辑Excel表格的方法
Sep 13 PHP
laravel框架 laravel-admin上传图片到oss的方法
Oct 13 PHP
PHP实现随机发扑克牌
Apr 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实现的随机广告显示代码
2007/06/14 PHP
php 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
thinkPHP中分页用法实例分析
2015/12/26 PHP
thinkPHP2.1自定义标签库的导入方法详解
2016/07/20 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
PHP实现的curl批量请求操作示例
2018/06/06 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
2020/08/17 PHP
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
2015/02/05 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
玩转JavaScript OOP - 类的实现详解
2016/06/08 Javascript
利用css+原生js制作简单的钟表
2020/04/07 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
vue实例的选项总结
2020/06/09 Javascript
结合axios对项目中的api请求进行封装操作
2020/09/21 Javascript
Python递归实现汉诺塔算法示例
2018/03/19 Python
python奇偶行分开存储实现代码
2018/03/19 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
使用Pytorch搭建模型的步骤
2020/11/16 Python
物流专业大学生的自我鉴定
2013/11/13 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
奥巴马上海演讲稿
2014/09/10 职场文书
听证通知书
2015/04/24 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书