Vamos a crear una pagina web multi-idioma de manera facil con PHP.
Una pagina multi-idioma es muy útil para aquellos contenidos que queremos compartir con diferentes países, este ejemplo sirve con 2 o mas idiomas y sin usar bases de datos.
Bueno vamos a empezar.
Lo que haremos sera usar un array asociativo.
Código
Les dejo el código en un gist.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!– Powered by http://evilnapsis.com/ –> | |
<?php | |
$lang = "es"; | |
if(isset($_GET["lang"]) && $_GET["lang"]!=""){ | |
if($_GET["lang"]=="en" || $_GET["lang"]=="es"){ | |
$lang = $_GET["lang"]; | |
} | |
} | |
$frases = array( | |
"es"=>array( | |
"frase1"=>"Bienvenido!", | |
"frase2"=>"Este micro sitio web es multi-idioma", | |
"frase3"=>"Servicios", | |
"frase4"=>"Los mejores servicios para ti" | |
), | |
"en"=>array( | |
"frase1"=>"Welcome!", | |
"frase2"=>"This micro website is multi-language", | |
"frase3"=>"Services", | |
"frase4"=>"The best services for you" | |
) | |
); | |
?> | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<title></title> | |
</head> | |
<body> | |
<p><a href="paginax.php?lang=es">Espa~ol</a> <a href="paginax.php?lang=en">Ingles</a></p> | |
<h1><?php echo $frases[$lang]["frase1"]; ?></h1> | |
<p class="lead"><?php echo $frases[$lang]["frase2"]; ?></p> | |
<h2><?php echo $frases[$lang]["frase3"]; ?></h2> | |
<p ><?php echo $frases[$lang]["frase4"]; ?></p> | |
</body> | |
</html> |
No olviden seguirme en github https://github.com/evilnapsis/
Explicación
En la linea 3 definimos la variable $lang con el valor “es” como default.
En las lineas 5-9 verificamos que este definido la variable $_GET[“lang”] con los valores “es” o “en”, en caso de no estar definido, usamos la opción por default definida en la linea 2.
En la linea 6 podemos agregar otros idiomas y en la linea 7 se asignara el prefijo correspondiente en la variable $lang.
El prefijo que usemos en $_GET[“lang”] o $lang sera usado en el array de frases mas adelante.
En las lineas 11-25 definimos el array de frases, este es un array especial dividido en 2 o mas partes dependiendo de los idiomas que se vallan a manejar, en mi caso son 2.
Las secciones son “es” y “en”, cada sección debe tener el mismo numero de frases contenidas dentro de otro array asociado a la opción correspondiente al ejemplo.
Esto sirve para que al hacer el cambio de opción de idioma nos va a devolver la frase correspondiente al otro idioma.
Por ejemplo frase1 en espa~ol seria $frases[“es”][“frase1”] y en ingles seria $frases[“en”][“frase1”].
Mas adelante en lugar de usar manualmente las palabras “en” o “es” usaremos el valor de la variable $lang.
En la linea 33 agregamos unos enlaces para cambiar el idioma de la pagina.
En las lineas 34-37 hacemos uso de las frases y las colocamos dentro de etiquetas HTML para darle sentido a la pagina web.
Resultado
No olvides compartir y suscribirte al blog.