Ver Mensaje Individual
  #35 (permalink)  
Antiguo 09/08/2003, 16:51
Nefer
 
Fecha de Ingreso: abril-2003
Ubicación: Zaragoza
Mensajes: 10
Antigüedad: 21 años
Puntos: 0
Hola a tod@s!
Yo al principio tambien lo hacía con plantillas pero he probado guardando los datos en una tabla de una base de datos y me ha dado buenos resultados.
Por si a alguno le sirve, lo que he hecho ha sido crear una tabla idiomas dentro de mi base de datos con los siguientes campos: nombre, es y fr (mi página es de 2 idiomas pero puede servir para 4 ó + añadiendo más campos). En el campo nombre, he puesto el nombre de la variable que utilizo en la web. En el campo es, su equivalente en español y en el campo fr, su equivalente en francés.
Es decir que en mi tabla, he realizado por ejemplo el siguiente insert:
insert into idiomas values('$saludo','hola','bonjour');

Al inicio de cada página he puesto la siguiente línea:
<?
include('idiomas.php');
?>

En el fichero idiomas.php he puesto el siguiente código:
<?
include "conexionMysql.php";
//////////////////////////////////////////////////
// idioma ////////////////////////////////////////
$idioma= ($_GET['idioma'] != "") ? $_GET{'idioma'} : $_COOKIE["idioma"];
if($idioma == "") { $idioma="es_es";};
setcookie ("idioma", $idioma,time()+3600000);


//coger idioma de bd
switch ($idioma) {
case "es_es":
$palabra = 'select nombre,es from idioma';
break;
case "fr_fr":
$palabra = 'select nombre,fr from idioma';
break;
}
$result = mysql_query($palabra) or die(mysql_error());

while ($row = mysql_fetch_array($result))
{
//se coge el valor de las variables de la tabla idiomas
eval ("\$".$row[0]." = \"".$row[1]."\";");
}
mysql_free_result($result);
?>

En el archivo conexionMysql.php, realizo la conexión con la base de datos.
Con la línea de código eval.... consigo que dependiendo del idioma, se haga una de las siguientes asignaciones :
$saludo='hola';
o
$saludo='bonjour'; (por ejemplo)

Espero que os sea de alguna utilidad.

Saludos.