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