`
低调小虾
  • 浏览: 2671 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

CodeIgniter框架URL多语种实现

阅读更多

网上实现方式最多的是采用hooks:即在pre_controller挂勾点,做一个hooks处理,从url中获取出语言段

但是当我在使用该方法的时候,却遇到了不少问题,因为我做了HMVC扩展,可能是因为这个原因,使得hooks总是报错,于是我改成了以下思路:

1、开启URL重写

    1)修改application/config/config.php

   

$config['index_page'] = "";
$config['uri_protocol'] = "AUTO"

   2)修改php.ini

  

cgi.fix_pathinfo = 0

   3)开启apache的url重写模块

   4)在项目根目录新建.htaccess文件,内容如下:

  

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]

   5)重启apache

2、修改application/config/routes.php,新增后边两行

   

$route['default_controller'] = "home";
$route['404_override'] = '';

//定义语言选择路由
$route['(en)(:any)'] = "$2";
$route['en'] = "home";

 

3、在application/core/下新建MY_Controller类并继承自CI_Controller:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Controller extends CI_Controller {
 function __construct(){
	 parent::__construct();
		$my_lang = $this->uri->segment(1);
		$this->config->set_item('lang_path','');
		//默认语言为中文Chinese
		if ($my_lang=='en')
		{
			//动态设置当前语言为'en'
			$this->config->set_item('language', $my_lang);
			//将语言段自动配置到url
			$this->config->set_item('lang_path',$my_lang.'/');
		}
		$this->load->helper('language');
	  }
 }

4、所有需要用到判别language的控制器,均继承自我自己创建的MY_Controller类

class User extends MY_Controller

 5、在控制器中加载语言文件,如:加载application/languages/en/error_lang.php

 

$this->lang->load('error');
$errmsg = array(
	'error' => lang('error_login_failed')
);

 6、在对应的语言模板中输出

  

<?=$error?>

 7、地址栏输入:

     yourwebsite/en 显示英文模板

     yourwebsite/     显示默认语言模板 默认语言模板在application/config/config.php 配置$config['language']项即可

8、完成

分享到:
评论

相关推荐

    基于Codeigniter框架的pkadmin后台管理系统.zip

    基于Codeigniter框架的pkadmin后台管理系统源码基于Codeigniter框架的pkadmin后台管理系统源码基于Codeigniter框架的pkadmin后台管理系统源码基于Codeigniter框架的pkadmin后台管理系统源码基于Codeigniter框架的...

    CodeIgniter框架

    7. **辅助函数和库**:CodeIgniter提供了一套丰富的辅助函数和类库,如表单验证、电子邮件发送、图像处理、加密解密等,大大简化了常见任务的实现。 8. **开发效率**:CodeIgniter的轻量化设计使得开发速度加快,...

    PHP敏捷开发CodeIgniter框架

    3. **URL路由**:CodeIgniter的URL路由功能允许开发者自定义URL结构,使其更符合RESTful原则,同时可以隐藏复杂的控制器和方法名。 4. **数据库支持**:CodeIgniter支持多种数据库系统,如MySQL、PostgreSQL、...

    PHP100教程2012版:CodeIgniter框架教程(3)(第17讲) 解压密码

    ### CodeIgniter框架概述 #### 1. 什么是CodeIgniter框架? CodeIgniter是一个基于PHP的轻量级Web应用开发框架,它旨在简化Web开发过程并提高开发效率。CodeIgniter采用了MVC(Model-View-Controller)架构模式,...

    php基于CodeIgniter框架

    PHP 基于 CodeIgniter 框架 CodeIgniter(CI)是一种 PHP 框架,旨在帮助开发者快速、简便地构建应用程序。CI 的出现是为了解决开发者在编写应用程序时遇到的问题,即希望写出运行状态良好的应用程序,同时也希望...

    使用php的codeigniter框架做的教育网站

    总之,使用PHP的CodeIgniter框架构建教育网站,能够结合其强大的功能和易用性,快速实现各种教育相关的功能,为用户提供优质的在线学习体验。通过合理的规划和设计,一个高质量的教育网站可以在CodeIgniter的支持下...

    用CodeIgniter框架快速构建企业门户网站.pdf

    CodeIgniter 框架快速构建企业门户网站 CodeIgniter 是一个免费、轻量级、容易安装的 PHP 开发框架,采用 MVC 模式,可以使开发变得轻松。使用 CodeIgniter 框架可以快速开发出适合企业需求的门户网站。 1. ...

    一种基于CodeIgniter框架科研论文管理系统的研究与实现.pdf

    "一种基于CodeIgniter框架科研论文管理系统的研究与实现" 本文主要介绍了一种基于CodeIgniter框架的科研论文管理系统的研究与实现。该系统的开发主要基于开源PHP框架和MVC设计模式,旨在解决高校科研论文管理中存在...

    php100:CodeIgniter框架教程(3)(第17讲)视频解压密码

    CodeIgniter拥有强大的路由系统,允许开发者自定义URL结构,实现美观且易于理解的URL,同时支持RESTful风格的URL,满足现代Web应用的需求。 #### 3. 自动加载机制 框架内置自动加载机制,可以自动加载类库、配置...

    CodeIgniter框架chm手册

    CodeIgniter框架chm手册,在网上找了好久没有找到chm的 所以自己做了一个

    PHP100-第17讲CodeIgniter框架教程(3)和第18讲CodeIgniter框架教程(4)-解压密码

    PHP100 &gt; PHP100新版教程 第17讲 CodeIgniter框架教程(3) 第18讲 CodeIgniter框架教程(4) 课件解压密码

    使用CodeIgniter框架快速开发PHP应用

    在Web开发领域,框架通常提供一套标准化的方法来组织代码,实现常见的功能和服务,如路由管理、模板引擎、数据库操作等。框架的目的在于提高开发效率、简化复杂度以及提升应用程序的整体质量。 #### CodeIgniter为...

    CodeIgniter是一个简单快速的PHPMVC框架

    作为一款轻量级的MVC(Model-View-Controller)框架,CodeIgniter强调了代码简洁和开发效率,使得开发者可以更加专注于业务逻辑,而不是底层基础设施的实现。 在MVC模式下,CodeIgniter将应用程序分为三个主要部分...

    php敏捷开发框架Codeigniter

    在压缩包中的"敏捷开发Codeigniter"可能包含了关于如何在CodeIgniter框架下实践敏捷开发方法的资源,比如快速原型设计、持续集成、测试驱动开发等实践。这些资料可以帮助开发者更好地运用敏捷理念,提高开发效率和...

    CodeIgniter框架URL路由总结

    CodeIgniter框架是一款轻量级的PHP开发框架,它的URL路由功能是其核心特性之一,允许开发者自定义URI与控制器和方法之间的映射关系,从而实现更友好的URL设计和灵活的请求处理。 **URI路由的基本概念** 在...

    PHP100教程2012版:CodeIgniter框架教程(4)(第18讲)解压密码

    - **路由配置**: CodeIgniter支持自定义路由规则,可以将特定的URL映射到控制器和方法上,从而实现更加灵活的URL结构。 #### 5. 视图渲染 - **模板引擎**: CodeIgniter本身没有内置的模板引擎,但可以通过扩展或第...

    Codeigniter框架整合Smarty引擎DEMO

    在本DEMO中,我们将探讨如何在CodeIgniter框架中集成Smarty,实现MVC模式下的模板处理。 首先,你需要确保已经安装了CodeIgniter框架。如果没有,可以从官方站点下载最新版本并解压到你的服务器或本地开发环境中。...

    PHP框架之CodeIgniter留言板实例

    PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter...

    codeigniter框架

    3. **简单的路由**:CodeIgniter的路由机制允许自定义URL结构,使得URL更加友好和SEO优化。 4. **错误处理和调试**:提供了详细的错误报告和调试工具,便于开发者找出和修复问题。 5. **模板引擎**:虽然视图文件...

Global site tag (gtag.js) - Google Analytics