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生成缩略图的代码
Jan 12 PHP
php设计模式 Delegation(委托模式)
Jun 26 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
Aug 06 PHP
php+mysql实现用户注册登陆的方法
Jan 03 PHP
php实现按照权重随机排序数据的方法
Jan 09 PHP
在Nginx上部署ThinkPHP项目教程
Feb 02 PHP
WordPress中调试缩略图的相关PHP函数使用解析
Jan 07 PHP
PHP类的声明与实例化及构造方法与析构方法详解
Jan 26 PHP
php高清晰度无损图片压缩功能的实现代码
Dec 09 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 PHP
在Laravel 中实现是否关注的示例
Oct 22 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 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
zend framework多模块多布局配置
2011/02/26 PHP
php中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
PHP常用技术文之文件操作和目录操作总结
2014/09/27 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
2016/11/14 PHP
PHP实现图片压缩
2020/09/09 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
iis6+javascript Add an Extension File
2007/06/13 Javascript
Use Word to Search for Files
2007/06/15 Javascript
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
浅谈pc端rem字体设置的问题
2017/08/03 Javascript
浅析vue深复制
2018/01/29 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
JavaScript如何借用构造函数继承
2019/11/06 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
解决vue打包报错Unexpected token: punc的问题
2020/10/24 Javascript
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
python中的错误处理
2016/04/10 Python
pandas带有重复索引操作方法
2018/06/08 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
详解python os.path.exists判断文件或文件夹是否存在
2020/11/16 Python
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
Hotels.com印度:酒店预订
2019/05/11 全球购物
美容师的职业规划书
2013/12/27 职场文书
优秀党员主要事迹
2014/01/19 职场文书
卫生安全检查制度
2014/02/04 职场文书
精神文明建设标语
2014/06/16 职场文书
2015年项目工作总结
2015/04/29 职场文书