[TUTORIAL]Sistema multilenguaje con sesiones

Kansy

Community Advocate
Community Support
Prime Account
Messages
2,621
Reaction score
9
Points
38
Bueno hago mi aporte. ^^

Para el que quiera hacer una web en varios idiomas y no quiera hacer 2 webs enteras... e aqui un sencillo codigo para toda la familia (como diria Arguiñano ^^).

Bueno, creamos tantos archivos como lenguajes tengamos. En mi caso será en español y en inglés.

es.php
PHP:
<? 
$welcome="Bienvenido";
$welcometxt="Bienvenido a la web de etc..." ;
?>

$ALGO <- Esto es el nombre de variable. Creamos todas las variables que llamaremos luego desde los archivos.

en.php
PHP:
<? 
$welcome="Welcome";
$welcometxt="Welcome to the web..." ;
?>

Ahora hacemos el archivo que manejará la sesion

selectlang.php

PHP:
<?php
session_start();
if ($_GET["idioma"]) {
$_SESSION["idioma"]=$_GET["idioma"];
} elseif (!$_SESSION["idioma"]) {
$_SESSION["idioma"]="es";
}
// incluimos el idioma con las definiciones
include("".$_SESSION["idioma"].".php");
?>

$_SESSION["idioma"]="es"; <--- Este es el lenguaje por defecto si no
ha seleccionado ninguno el usuario, yo puse español.

Yo recomiendo hacer un archivo que te pregunte que idioma deseas utilizar donde hayan dos enlaces por ejemplo un href a index.php?idioma=es y otro a index.php?idioma=en

Luego en el archivo ya que queramos mostrar pues hacemos lo siguiente.

por ejemplo index.php

PHP:
<? include("selectlang.php"); ?>
<- Al principio, encima de todo de la web antes de ninguna otra cosa, asi hacemos que se inicie la sesion. (Debe de estar en todos los archivos donde luego llamemos a las variables ?>

Y cuando queramos que aparezca el texto pues usaremos la funcion echo

PHP:
<? echo $welcometxt; ?>


^^ Espero haber ayudado a alguien
 
Last edited:

eZakto

Member
Messages
782
Reaction score
1
Points
18
Muy bueno. Yo hago mis añadidos al aporte:
- Recomiendo usar arrays en vez de variables, pues todo queda más organizado y todo está acumulado dentro de un solo array, dejando la posiblidad de usar las variables para otra cosa.
PHP:
<?php
$lang['welcome'] = "loquesea";
$lang['welcometxt'] = "Bienvenido a la web de etc...";
?>

- Se puede detectar el idioma del usuario usando la cabecera "accept_language", obteniéndola mediante la variable predefinida $_SERVER:
PHP:
<?php
echo $_SERVER['HTTP_ACCEPT_LANGUAGE'];
?>

Saludos.
 
Top