jueves, 11 de junio de 2009

Traducir a varios idiomas tu web con PHP

Para realizar tu página web en varios idiomas lo que debes hacer primero es cada vez que vayas a escribir algo en tu idioma en vez de ello poner una variable porque dependiendo del idioma en esa variable pondrás unas palabras u otras.

Después de ellos cada vez que escribas una variable nueva deberás ponerla en el fichero que estarán todas en todos los idiomas, en este caso español e inglés.

El fichero lo llamaremos como el fichero web más 'idioma' por ejemplo 'indexIdioma.php'

<?
switch ($idioma)
{
// Ingles
case "ing":
$zhola = "hello";
break;
// Castellano
default:
$zhola = "hola";
}
?>


Como podemos ver y es recomendable pondremos el idioma principal en el default.

Por último el fichero de la página web:

<?
if(isset($_POST['idioma']))
{
$idioma=$_POST['idioma'];
$_SESSION['idioma']=$idioma;
}
else
{
if(isset($_SESSION['idioma']))
$idioma=$_SESSION['idioma'];
else
$idioma="";
}
?>

<?include("indexIdioma.php");?>

<?echo $zhola;?>

<script type="text/javascript">
function cambiar(idioma)
{
if(idioma=='ing')
{document.getElementById('idioma').value='ing';}
else
{document.getElementById('idioma').value='esp';}

document.form.submit();
}
</script>

<form id="form" name="form" action="prueba.php" method="post">
<input name="idioma" id="idioma" value="" type="hidden"/>
<input type="button" value="Inglés" onclick="cambiar('ing');"/>
<input type="button" value="Español" onclick="cambiar('esp');"/>
</form>

Primeramente vemos si se le ha dado a uno de los diversos botones para cambiar el idioma si es asi se guardará en $idioma y en la variable 'idioma' de la sesion el idioma elegido por el usuario, se guarda en la sesión para ir pasandola por las diversas páginas web que tengamos y asi no tengas que cambiar el idioma cada vez que cambiemos de página.

Lo siguiente es ver si en el caso que el usuario no haya dado al boton de los idiomas verá si ya existe un idioma en la sesión sino la pondra a cadena vacia y por tanto irá al default del switch el cual en este caso será español.

Por último tenemos el formulario donde cambiaremos el idioma, según el boton que haya elegido el usuario volverá a cargar la pagina pero ya con el idioma elegido ya que lo pondra en el $_POST['idioma'].

5 comentarios:

  1. Muchas gracias, es muy útil tu post!Llevaba mucho tiempo intentando hacer algo parecido.

    ResponderEliminar
  2. Muy bueno tu blog, te visitare a menudo ;)

    ResponderEliminar
  3. donde estan los mensjaes de pantalla "patataaaaaaaa"??? no lo entiendo....

    fleinWein

    ResponderEliminar
  4. En pantalla se ve, un ejemplo hay puesto -> echo $zhola;

    ResponderEliminar