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 相关文章推荐
我的群发邮件程序
Oct 09 PHP
PHP4 与 MySQL 数据库操作函数详解
Dec 06 PHP
PHP删除特定数组内容并且重建数组索引的方法.
Mar 25 PHP
Php图像处理类代码分享
Jan 19 PHP
PHP中的错误处理、异常处理机制分析
May 07 PHP
解析MySql与Java的时间类型
Jun 22 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
Jul 13 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
thinkphp中的多表关联查询的实例详解
Oct 12 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 PHP
PHP 图片合成、仿微信群头像的方法示例
Oct 25 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
PHP常用代码
2006/11/23 PHP
php木马webshell扫描器代码
2012/01/25 PHP
PHP延迟静态绑定示例分享
2014/06/22 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
JAVASCRIPT  THIS详解 面向对象
2009/03/25 Javascript
javascript之typeof、instanceof操作符使用探讨
2013/05/19 Javascript
关于jquery中全局函数each使用介绍
2013/12/10 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
Vue组件的使用教程详解
2018/01/05 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
微信小程序实现图片上传放大预览删除代码
2020/06/28 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
Python contextlib模块使用示例
2015/02/18 Python
Django中处理出错页面的方法
2015/07/15 Python
python爬取淘宝商品销量信息
2018/11/16 Python
Python实现网页截图(PyQT5)过程解析
2019/08/12 Python
Python Gitlab Api 使用方法
2019/08/28 Python
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
纬创Java面试题笔试题
2014/10/02 面试题
销售员求职个人的自我评价
2014/02/19 职场文书
县人大领导班子四风对照检查材料思想汇报
2014/10/09 职场文书
学校会议通知范文
2015/04/15 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
党小组推荐意见
2015/06/02 职场文书
总结会主持词
2015/07/02 职场文书