Php 代码点火器多语言路由

Php 代码点火器多语言路由,php,codeigniter,routes,Php,Codeigniter,Routes,大家好,有人可以帮我根据$\u会话参数路由我的应用程序URL吗 切换航线的最佳方式是什么 使用多个路由文件怎么样?我是说route_ch.php,route_en.php,route_sp.php 是否有任何链接,以了解如何根据网站的路线 谢谢大家您需要使用所选语言的会话检查来扩展视图控制器。然后可以相应地重定向用户 创建一个控制器,即LangSwitch.php <?php class LangSwitch extends CI_Controller { public funct

大家好,有人可以帮我根据$\u会话参数路由我的应用程序URL吗

切换航线的最佳方式是什么

使用多个路由文件怎么样?我是说route_ch.php,route_en.php,route_sp.php

是否有任何链接,以了解如何根据网站的路线


谢谢大家

您需要使用所选语言的会话检查来扩展视图控制器。然后可以相应地重定向用户

创建一个控制器,即LangSwitch.php

<?php
class LangSwitch extends CI_Controller
{
    public function __construct() {
        parent::__construct();
        $this->load->helper('url');
    }

    function switchLanguage($language = "") {
        $language = ($language != "") ? $language : "en";
        $this->session->set_userdata('site_lang', $language);
        redirect(base_url());
    }
}
切换每种可用语言的链接:

<a href='<?php echo $base_url; ?>langswitch/switchLanguage/en'>English</a>

<a href='<?php echo $base_url; ?>langswitch/switchLanguage/fr'>French</a>
在application/hooks目录下定义/创建一个钩子类[LanguageLoader.php],其中包含执行该类所需的信息

<?php
class LanguageLoader
{
    function initialize() {
        $ci =& get_instance();
        $ci->load->helper('language');

        $site_lang = $ci->session->userdata('site_lang');
        if ($site_lang) {
            $ci->lang->load('message',$ci->session->userdata('site_lang'));
        } else {
            $ci->lang->load('message','en');
        }
    }
}
这只是一个对我很有效的持续的想法。我希望它对你也有用