Codeigniter мультиязычный маршрут - PullRequest
1 голос
/ 24 декабря 2010

Привет, есть кто-нибудь, кто может помочь мне направить URL-адреса моего приложения в соответствии с параметром $ _SESSION?

Какой лучший способ переключения маршрутов lang?

как насчет использования многих файлов маршрутов? (я имею в виду route_ch.php, route_en.php, route_sp.php,)

есть ли какая-нибудь ссылка, чтобы понять, как проложить маршрут по сайту lang?

спасибо, ребята

1 Ответ

0 голосов
/ 25 марта 2014

Вам необходимо расширить свой контроллер View с проверкой сеанса выбранного языка. Затем вы можете перенаправить () пользователя соответственно.

создать контроллер, т.е. 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>

Определяет / создает класс ловушек [LanguageLoader.php] в каталоге application / hooks с необходимой информацией для его выполнения.

<?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');
        }
    }
}

Это просто запущенная идея, которая хорошо сработала для меня. Надеюсь, вам это тоже пригодится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...