Ver Mensaje Individual
  #8 (permalink)  
Antiguo 13/09/2009, 08:17
etanol
 
Fecha de Ingreso: marzo-2005
Mensajes: 149
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: Aplicación con sistema multilenguaje en php

Hace tiempo descargué un script que es justo lo que necesitas.

plantilla.php
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<?php
/* Este código detecta el idioma por defecto del visitante.
Sin embargo, si el visitante indica un idioma mediante la URL (siguiendo un enlace) toma preferencia */

// Miramos si el usuario ha definido un idioma por defecto en su navegador
if ($HTTP_ACCEPT_LANGUAGE != ''){ 
 
// Si es así, miramos que idiomas ha definido:
    
$idiomas explode(","$HTTP_ACCEPT_LANGUAGE); # Convertimos HTTP_ACCEPT_LANGUAGE en array
    
 /* Recorremos el array hasta que encontramos un idioma del visitante que coincida con los idiomas en que está disponible nuestra web */
    
for ($i=0$i<count($idiomas); $i++){
  
// Si aún no hemos definido la variable $idioma...
        
if (!isset($idioma)){
   
/* Miramos si tiene algún idioma de los disponibles entre sus favoritos.
   Empezando por su primer favorito y acabando por su último favorito */
            
if (substr($idiomas[$i], 02) == "es"){$idioma "es";}
            if (
substr($idiomas[$i], 02) == "en"){$idioma "en";}
            if (
substr($idiomas[$i], 02) == "fr"){$idioma "fr";}
        }
    }
}

// Si aún no hemos encontrado ningún idioma que nos convenga, mostramos la web en el idioma por defecto
if (!isset($idioma)){$idioma "es";}

// Ahora incluimos la plantilla de idioma correspondiente al idioma que pertoque:
include("idiomas_$idioma.php");
?>
<html>
<head>
<?php // Ahora sustituimos los textos por variables (contenidas en textos_$idioma.php) ?>
 <title><?php echo $t_titulo?></title>
</head>

<body>
<h1><?php echo $t_cabecera?></h1>
<p><?php echo $t_texto?></p>
<ul><?php // Estos textos no los sustituímos porque son los nombres de los idiomas en el idioma al que apuntan ?>
 <?php if ($idioma != 'es') { ?><li><a href="plantilla.php?idioma=es">español</a></li><? ?>
 <?php if ($idioma != 'en') { ?><li><a href="plantilla.php?idioma=en">català</a></li><? ?>
 <?php if ($idioma != 'fr') { ?><li><a href="plantilla.php?idioma=fr">euskera</a></li><? ?>
</ul>

</body>
</html>
idiomas_es.php
Código PHP:
<?php
// Textos en español. Replicar este documento por cada idioma adicional de la web
$t_titulo "Página en varios idiomas";
$t_cabecera "Bienvenido";
$t_texto "Esta página está disponible en varios idiomas";
?>
idiomas_en.php
Código PHP:
<?php
// Textos en español. Replicar este documento por cada idioma adicional de la web
$t_titulo "Welcome to the web";
$t_cabecera "Welcome";
$t_texto "This is english";
?>
idiomas_fr.php
Código PHP:
<?php
// Textos en español. Replicar este documento por cada idioma adicional de la web
$t_titulo "Página en frances";
$t_cabecera "Bienvenido en frances";
$t_texto "Texto en frances";
?>
Repito, hace tiempo que lo guardé y no recuerdo la fuente para poner los créditos.

Espero te ayude. Saludos

Última edición por etanol; 13/09/2009 a las 08:23