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实现链结人气统计
Oct 09 PHP
提高PHP编程效率 引入缓存机制提升性能
Feb 15 PHP
windows下开发并编译PHP扩展的方法
Mar 18 PHP
PHP中调用ASP.NET的WebService的代码
Apr 22 PHP
php中3des加密代码(完全与.net中的兼容)
Aug 02 PHP
PHP实现读取一个1G的文件大小
Aug 24 PHP
Laravel 5 框架入门(四)完结篇
Apr 09 PHP
php实现基于openssl的加密解密方法
Sep 30 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
Nov 10 PHP
简单实现PHP留言板功能
Dec 21 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
Oct 17 PHP
WordPress多语言翻译插件 - WPML使用教程
Apr 01 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 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
简单的php写入数据库类代码分享
2011/07/26 PHP
Thinkphp中Create方法深入探究
2014/06/16 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
js 中的switch表达式使用示例
2020/06/03 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
JS实现秒杀倒计时特效
2020/01/02 Javascript
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
详解python实现小波变换的一个简单例子
2019/07/18 Python
Python socket处理client连接过程解析
2020/03/18 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
创建无烟单位实施方案
2014/03/29 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
领导个人查摆剖析材料
2014/10/29 职场文书
初中毕业生自我评价
2015/03/02 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
永远是春天观后感
2015/06/12 职场文书
民主生活会主持词
2015/07/01 职场文书
九年级历史教学反思
2016/02/19 职场文书
Python打包为exe详细教程
2021/05/18 Python
Mybatis是这样防止sql注入的
2021/12/06 Java/Android