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 相关文章推荐
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
Jun 04 PHP
php中strtotime函数用法详解
Nov 15 PHP
windows下安装php的memcache模块的方法
Apr 07 PHP
php实现对象克隆的方法
Jun 20 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
Aug 23 PHP
PHP抓取远程图片(含不带后缀的)教程详解
Oct 21 PHP
PHP-FPM运行状态的实时查看及监控详解
Nov 18 PHP
ThinkPHP开发--使用七牛云储存
Sep 14 PHP
PHP levenshtein()函数用法讲解
Mar 08 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
May 09 PHP
PHP使用观察者模式处理异常信息的方法详解
Sep 24 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 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
长波有什么东西
2021/03/01 无线电
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
利用PHP实现短域名互转
2013/07/05 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
PHP使用Nginx实现反向代理
2017/09/20 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
浅谈laravel中的关联查询with的问题
2019/10/10 PHP
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
js代码实现轮播图
2020/05/04 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
Atom Python 配置Python3 解释器的方法
2019/08/28 Python
Flask之pipenv虚拟环境的实现
2019/11/26 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
美国存储和组织商店:The Container Store
2017/08/16 全球购物
介绍一下grep命令的使用
2015/06/12 面试题
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
师德师风剖析材料
2014/09/30 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
python numpy中setdiff1d的用法说明
2021/04/22 Python