【问题标题】:Codeigniter multilanguage routeCodeigniter 多语言路由
【发布时间】:2010-12-24 17:55:08
【问题描述】:

大家好,有没有人可以帮我根据 $_SESSION 参数路由我的应用网址?

切换 lang 路由的最佳方式是什么?

如果使用多个路由文件呢? (我的意思是 route_ch.php,route_en.php,route_sp.php,)

是否有任何链接可以了解如何根据站点语言进行路由?

谢谢大家

【问题讨论】:

    标签: php codeigniter routes


    【解决方案1】:

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

    创建一个控制器,即 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');
            }
        }
    }
    

    这只是一个对我很有效的想法。希望对你也有用。

    【讨论】:

      猜你喜欢
      • 2011-02-16
      • 2020-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 2013-12-19
      • 2013-09-13
      • 2017-10-09
      相关资源
      最近更新 更多