El problema viene cuando elijo el segundo lenguaje, en este caso inglés, la página de inicio carga perfecto, y cuando me voy aa un enlace cualquiera, todo regresa a español, si en la URL manualmente cambio "es" por "en" sí se ve bien, pero sé que tengo un problema con el ruteo solo que no consigo encontrarlo, llevo ya dos días con este detalle y nada que lo soluciono, por eso me animé a pedir ayuda.
Mi portal funciona de la siguiente forma:
En el archivo ROUTES, agregué estas dos reglas (que si bien no las entiendo perfectamente, son tal y como las leí en un manual que seguí para hacer lo de multilenguaje)
Código PHP:
$route['(\w{2})/(.*)'] = '$2';
$route['(\w{2})'] = $route['default_controller'];
Código PHP:
$config['languages'] = array("es" => "espanol", "en" => "english");
$config['redirect_urls']=false;
Código PHP:
<?php (defined('BASEPATH')) OR exit('No direct script access allowed');
class MY_Lang extends CI_Lang
{
function __construct()
{
parent::__construct();
$config =& get_config();
if(isset($config['languages']) && isset($config['redirect_urls']))
{
global $URI, $CFG, $IN;
//var_dump($URI);
$lang = (isset($URI->segments['1']))?$URI->segments['1']:'';
$uri=$URI->segments;
if(strlen($lang) == 2 && array_key_exists($lang,$config['languages']) == true)
{
$config['language']=$config['languages'][$lang];
}
elseif($config['redirect_urls'] == true || strlen($lang) == 2 && array_key_exists($lang,$config['languages']) == false)
{
$url=$config['base_url'];
$url.=(empty($config['index_page']))?'':$config['index_page'].'/';
$url.=array_search($config['language'],$config['languages']).'/';
if(strlen($lang)==2)
{
array_shift($uri);
$url.=implode('/',$uri);
}else
{
$url.=implode('/',$uri);
}
header("location: $url");
}
}
}
}
Saludos y de ante mano, mil gracias!!