[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
Thanks !