Hola!
Yo hace poco hice una web multiidioma... te digo como lo realice por si te sirve de ayuda:
1º: Tengo un fichero llamado "traducciones.php" con todos los textos traducidos en variables de tipo array:
Código PHP:
Ver original<?php
"es" => "Menu",
"en" => "Menu",
);
"es" => "Enviar",
"en" => "Send",
);
"es" => "Titulo",
"en" => "Title",
);
"es" => "La página solicitada no existe",
"en" => "The page you requested does not exist",
);
$pendienteDeTraducir = array( "es" => "La página solicitada estará traducida dentro de poco",
"en" => "The page you requested will be translated coming soon",
);
"es" => "Se ha producido un error inesperado",
"en" => "There was an unexpected error",
);
?>
2º: En otro fichero llamado por ejemplo "test_language_session.php" tengo el siguiente codigo:
Código PHP:
Ver original//comprobamos si existe la variable de sesion con el idioma
if(!isset($_SESSION["lang"])) { //inicializamos por defecto el idioma
$_SESSION["lang"]="es";
//comprobamos el idioma del navegador
$nav_lang =substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2); switch ($nav_lang) {
case "es":
$_SESSION["lang"]="es";
break;
case "en":
$_SESSION["lang"]="en";
break;
default:
$_SESSION["lang"]="es";
break;
}
} else {
//como mera comprobacion
switch ($_SESSION["lang"]) {
case "es":
break;
case "en":
break;
default:
$_SESSION["lang"]="es";
break;
}
}
Este fichero esta incluido al principio de cada pagina del proyecto, aunque no es necesario.
De esta forma, siempre tengo en la variable de sesion "lang" el idioma del usuario, que en este caso puede ser "es" o "en".
3º: Por ultimo, el todas las paginas del sitio web pongo los textos de la siguiente forma:
$nombre_variable[$_SESSION['lang']]; de forma que cuando la variable de sesión sea "es" o "en", muestre el texto del array correspondiente.
Ejemplos...
Código PHP:
Ver original<meta charset="UTF-8" name="description" content="<?php echo $metaDescription[$_SESSION['lang']]; ?>">
<meta charset="UTF-8" name="keywords" content="<?php echo $metaKeywords[$_SESSION['lang']]; ?>">
....
<div class="wrapper">
<h1><?php echo $pagina_titulo[$_SESSION['lang']]; ?></h1>
</div>
....
Como veras, de esta forma es facil añadir un nuevo idioma en el futuro! Simplemente añadir el nuevo idioma con sus traducciones en los arrays... y modificar un poco la funcion del punto 2º.
En esta funcion del punto 2º, veras que por defecto coje el idioma del navegador.... y en caso de que no sea "es" o "en", deja por defecto el españor....
Esto lo puedes adaptar a tu gusto...
Espero pueda servirte de ayuda.
Un saludo.