Web multilingüe con PHP
En esta ocasión vamos a ver lo sencillo que es tener un sistema multilingüe para nuestra web. Sólo debemos incorporar el siguiente código al inicio de todas las páginas.
-
//si no existe la variable lang:
-
//comprobamos si existe la cookie
-
//en caso contrario asignamos idioma del navegador
-
$lang=$_GET['lang'];
-
if($lang==false){
-
if($_COOKIE["lang_cookie"]){$idioma=$_COOKIE["lang_cookie"];}
-
else{
-
if($navegador=='en'){$idioma='en';}
-
elseif($navegador=='fr'){$idioma='fr';}
-
else{$idioma='es';}
-
}
-
}
-
else{
-
if($lang=='en'){$idioma='en';}
-
elseif($lang=='fr'){$idioma='fr';}
-
else{$idioma='es';}
-
}
-
//enviamos cookie para mantener la selección del usuario
-
-
echo $idioma;
Este código lo que hará en primer lugar es asignar un idioma a los usuarios nuevos, que será el idioma principal que tenga su navegador. Esto supongo que ya sabréis donde se cambia, pero por si acaso, sólo es necesario ir a Herramientas -> Opciones de Internet -> Idiomas, en nuestro navegador.
Luego podemos poner las típicas banderitas de idiomas con un enlace a cualquier página o $PHP_SELF, incluyendo la variable "lang" con el idioma que proceda. Por ejemplo:
Con la variable $idioma que retorna el script, podemos hacer después un include al archivo de idioma en cuestión, que contrendrá las traducciones de los contenidos:
-
include("languages/".$idioma.".php");
Ejemplo de archivo de idioma español, es.php:
Salu2

Hola, me parece excelente este tutorial, pero me queda una gran dudad, exactamente como va el html de index.php? es decir, etamos definiendo HEADER_TITLE, CONTENT y FOOTER, pero estos cómo se sitúan en index.php si solo llamamos el include con las definiciones?… ojalá que me puedar responder
apenas estoy comenzando con php.
Hola Devy,
Pues simplemente incorporas la variable definida dentro de tu HTML.
Por ejemplo
< ?php echo CONTENT;?>
Salu2
Perfecto, gracias David!