Vamos a ver cómo podemos hacer una web en la que los visitantes puedan escoger el idioma en el que quieran ver la web y que esta preferencia quede almacenada en una cookie para que cuando vuelvan a la web la vean en el idioma deseado.
Pero para hacerlo no vamos a hacer una página para cada idioma sinó que vamos a ver cómo estructurar nuestra página para que una misma página sea ofrecida en más de un idioma que estará almacenado en un archivo externo.
Primero escogeremos los idiomas en los que queremos ofrecer nuestra página, que para el ejemplo serán castellano, ingles y catalán, entonces crearemos un archivo con un nombre que identifique al idioma en un directório llamado lang (es.php, en.php y ca.php) para cada uno de los idiomas en los que pondremos el texto traducido de nuestra página en forma de variables, por ejemplo, si en nuestra página ponemos un texto que será 'Puedes seleccionar otro idioma de la lista:', seguido de un combo con la palabra idiomas y los idiomas, en es.php tendremos que definir todos los textos que usaremos en castellano:
| lang/es.php |
000 001 002 003 004 005 006
|
<? $txt_cambiarIdioma = 'Puedes seleccionar otro idioma de la lista:'; $txt_idiomas = 'idiomas'; $txt_catalan = 'Catalán'; $txt_espanol = 'Español'; $txt_ingles = 'Inglés'; ?>
|
Y lo mismo lo haremos en el archivo en.php y en ca.php pero con los textos en inglés y en catalán:
| lang/en.php |
000 001 002 003 004 005 006
|
<? $txt_cambiarIdioma = 'You can choose another language:'; $txt_idiomas = 'languages'; $txt_catalan = 'Catalan'; $txt_espanol = 'Spanish'; $txt_ingles = 'English'; ?>
|
Y cuando hagamos nuestra página, en lugar de poner el texto, pondremos la variable del texto que hay que mostrar en la página, de esta manera, cuando queramos mostrar 'Puedes seleccionar... ' pondremos <?=$txt_cambiarIdioma?>, de esta manera:
000 001 002 003 004 005 006 007 008 009 010
|
<html> <body> <?=$txt_cambiarIdioma?> <select onchange="document.location = '<?=$_SERVER['PHP_SELF']?>?idioma=' + this.value"> <option><?=$txt_idiomas?> <option value="ca"><?=$txt_catalan?> <option value="es"><?=$txt_espanol?> <option value="en"><?=$txt_ingles?> </select> </body> </html>
|
Esto nos mostrará un combo con los idiomas disponibles para poder cambiarlos, si seleccionamos una opción, no enviará a pagina.php?idioma=idiomaSeleccionado. |