Ver Mensaje Individual
  #7 (permalink)  
Antiguo 11/09/2008, 04:44
VitorGarcia
 
Fecha de Ingreso: mayo-2008
Mensajes: 42
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Fallo al intentar mostrar una imagen

A ver para empezar el tener un archivo para ingles y otro para castellano me parece un poco de atraso...

Yo haría un único archivo y dentro de él ya se muestra un idioma u otro según esté seleccionado...

sería algo así:
Creamos un archivo para castellano, por ejemplo es.php y metemos en él un array con los textos a traducir.
Código PHP:
$traducciones=array(
  
"Hola" => "Hola",
  
"Adios" => "Adios"
); 
a continuación creamos el fichero de ingles, por ejemplo en.php y repetimos la operación pero con las traducciones
Código PHP:
$traducciones=array(
  
"Hola" => "Hello",
  
"Adios" => "Good Bye"
); 
despues creamos un archivo llamado por ejemplo traductor.php
Código PHP:
session_start();

$sup_lang=array("es""en");

if(
$_SESSION["lang"]!="") {
    
$lang=$_SESSION["lang"];
} else {
    
$cli_lang=explode(","$HTTP_ACCEPT_LANGUAGE);

    for(
$i=0;$i<count($cli_lang) && !isset($lang); $i++) {
        for(
$j=0;$j<count($sup_lang); $j++) {
            if(!
strncmp($cli_lang[$i],$sup_lang[$j],strlen($sup_lang[$j]))) {
                
$lang=$sup_lang[$j];
                break;
            }
        }
    }
}

if(
$_GET["lang"]!="")
    
$lang=$_GET["lang"];

switch(
$lang) {
    default:
    case 
"es":
        include_once(
"es.php");
        
$_SESSION["lang"]="es";
        break;
    case 
"en":
        include_once(
"en.php");
        
$_SESSION["lang"]="en";
        break;

Ya por último en los archivos que queramos traducir ponemos algo así como:
Código HTML:
<? include('traductor.php'); ?>
<p><? echo $traduccion["Hola"]; ?></p>
<span><? echo $traduccion["Adios"]; ?></span> 
en lugar de $traduccion se puede emplear algo mas corto para no hacerlo tan pesado.

Cuando una imagen dependa del idioma seleccionado sería tan sencillo como poner
Código PHP:
if $lang == 'es'
  
la imagen que sea
else
  
la otra 

Espero que haya servido de algo... Un saludo

Última edición por VitorGarcia; 11/09/2008 a las 05:06