buscando en internet, hice un agregado para que primero detecte el idioma del navegador y en base a eso, ponga ese idioma en caso de existir...
(sacado de acá:
http://alexsancho.name/archives/2005...guaje-con-php/ )
Primero agregué esta función:
Código PHP:
function detectar_idioma_navegador() {
global $conf;
$languages = preg_replace('/(;q=\d+.\d+)/i', '', getenv('HTTP_ACCEPT_LANGUAGE'));
$bol_language_detected = false;
// Comprobamos si el navegador usa alguno de los idiomas que hemos predefinido.
foreach ($conf['lang_enabled'] as $tmp_arr_language) {
if (preg_match('/' . $tmp_arr_language . '/i', $languages)) {
$tmp_str_language_detected = $tmp_arr_language;
$bol_language_detected = true;
break;
}
}
// Si el navegador usa uno de los idiomas seleccionados, se devuelve el path del fichero de idioma
// En caso contrario, se devuelve el path del idioma original
if ($bol_language_detected) {
return $tmp_str_language_detected;
} else {
return $conf['lang_default'];
}
}
y despues en el ejemplo que pusieron, si la sesión está vacía pone el idioma del navegador y sino queda con el idioma que elige el visitante.
Código PHP:
session_start();
if(!isset($_SESSION['varIdioma']) || !empty($_GET['lang'])){
$lang=$_GET['lang'];
if(empty($lang)){
$conf['lang_default'] = 'en'; // idioma por defecto
$conf['lang_enabled'] = array('en', 'es', 'pt');
$conf['lang'] = detectar_idioma_navegador();
$lang=$conf['lang'];
}
$_SESSION['varIdioma']=$lang;
}
switch ($_SESSION['varIdioma']) {
case $_SESSION['varIdioma']: require("idioma/".$_SESSION['varIdioma'].".php"); break;
}
if ($_SESSION['varIdioma']=="es"){
echo '<a href="index.php?lang=en">English</a><br />';
}else{
echo '<a href="index.php?lang=es">Español</a><br />';
}
Así por defecto elige el idioma del navegador y si no existe pone inglés (en mi caso, porque le puse "en"), pero el visitante puede cambiar el idioma por el que quiera (de los que haya disponibles), recién lo estoy probando y por ahora va bien.