miércoles, 30 de julio de 2014

Traducir a distintos lenguajes una web con PHP - web multilenguaje


Bienvenid@s, hoy veremos un ejemplo de como tener una web multilenguaje. No se trata de incluir el plugin Google Translate en la web, sino de trabajar con PHP y definir el texto de cada parte de la web para que esté disponible en diferentes lenguajes.

Esto lo podemos hacer a través de scripts php separados que como se dijo anteriormente vayan definiendo el texto de la web, cada uno en su lenguaje, por ejemplo, vamos a hacer que el texto esté disponible en inglés y español y el usuario pueda modificar el lenguaje desde un campo select. Por defecto la web se mostrará en lenguaje español.

Empezaremos definiendo el lenguaje para el idioma español, a este script lo llamaremos es.php:

$lang = array
    (
  'title' => 'Bienvenidos a la página de inicio',
  'description' => 'Ejemplo de como crear una web multilenguaje con PHP',
         'select' => 'Seleccionar lenguaje:',
  'footer' => 'Este es el pie de página',
 );


Ahora, que hemos definido el texto que tendrá la web en español, es momento de realizar lo mismo, pero para el inglés, a este script lo llamaremos en.php:

$lang = array
    (
  'title' => 'Welcome to the home page',
  'description' => 'Example of how to create a multilingual website with PHP',
         'select' => 'Select language:',
  'footer' => 'This is the footer',
 );


Muy bien, ahora el usuario podrá seleccionar un lenguaje u otro a través del campo select que se mostrará en la web:

A este script lo llamaremos home.php y será la simulación de la página de inicio del sitio web:

<?php 
/* Si el usuario selecciona un lenguaje lo cargamos */
if (isset($_POST["select"]))
{
$select = $_POST["select"];
require $select.".php";
}
else
{
/* Lenguaje por defecto */
require "es.php";
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title><?php echo $lang["title"] ?></title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
$(function(){
$("select").on("change", function(){
$("#form").submit();
});
});
</script>
</head>
<body>
<h1><?php echo $lang["title"] ?></h1>
<h4><?php echo $lang["description"] ?></h4>

<form method="post" id="form">
<?php echo $lang["select"] ?> 
<select name="select">
<option value=""></option>
<option value="es">es</option>
<option value="en">en</option>
</select>
</form>

<small><?php echo $lang["footer"] ?></small>
</body>
</html>


Resultado de la web en español:

Traducir a distintos lenguajes una web con PHP - web multilenguaje

Resultado de la web en inglés:

Traducir a distintos lenguajes una web con PHP - web multilenguaje

Como podéis ver funciona perfectamente, espero que les haya gustado, saludos.


No hay comentarios: