Welcome Guest, Not a member yet? Register   Sign In
Multilingual website gestion
#4

[eluser]dorwin[/eluser]
Ok,

its works, I had to add few lines because it doesnt work with base URL, like site.com : Redirect is ok, ia have site.com/fr but there is not "fr" controller so:

Route :
Code:
$route['(en|fr)/(:any)'] = "$2";
$route['(en|fr)'] = "accueil";
accueil is my defaut controller if none specified

and My_Controller :
Code:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Controller extends Controller {

/*
| -------------------------------------------------------------------
|  Constructeur : Sorte de méga header
| -------------------------------------------------------------------
| Description : chargela langue du site, redirige etc...
*/
    function MY_Controller()
    {
        parent::Controller();
        
        //---CHECK LANG-----//
        if ($this->uri->segment(1) == "fr" OR $this->uri->segment(1) == "en") //si URL OK
        {
            if (!$this->uri->segment(2)) //si on est sur la page d'accueil
                $this->lang->load('accueil', $this->uri->segment(1)); //chargement du fichier de langue accueil
            else    
                $this->lang->load($this->uri->segment(2), $this->uri->segment(1)); //sinon le fichier demandé
        }
        else //sinon langue non précisé
        {
            //recherche de la langue du navigateur
            $lang = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
            $lang = strtolower(substr(chop($lang[0]),0,2));
            
            if ($lang == "fr" OR $lang == "en") //si le navigateur est en FR ou EN
            {
                //on réécrit l'url avec la langue du navigateur
                redirect(base_url().$lang.$this->uri->uri_string());
            }
            else    //par exemple RU, IT, etc..
            {
                //on redirige page EN (english)
                redirect(base_url().'en'.$this->uri->uri_string());
            }
                
        }        
    }        
}
?>
There is a new if : if (segement(2) don't exist (site.com/fr), lang file called is accueil_lang.

Every others controllers extend My_Controller, wich extend Controller.

Multilingual website is on good way now Smile

Thanks !


Messages In This Thread
Multilingual website gestion - by El Forum - 01-10-2010, 07:09 PM
Multilingual website gestion - by El Forum - 01-11-2010, 01:04 AM
Multilingual website gestion - by El Forum - 01-11-2010, 11:27 AM
Multilingual website gestion - by El Forum - 01-11-2010, 01:49 PM



Theme © iAndrew 2016 - Forum software by © MyBB