Bueno, eso mismo hice yo hace un tiempo, y ésta fue mi técnica:
En cualquier página del sitio miro lo siguiente:
Código PHP:
// Si no está establecida la cookie del idioma...
if (!isset($_COOKIE['idioma_por_defecto']))
$id_idioma=substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
else // Si está...
$id_idioma=$_COOKIE['idioma_por_defecto'];
// Establecemos un IDIOMA POR DEFECTO, si el idioma del
// browser, no coincide con ninguno de los 'soportados'
if ($id_idioma!="es" && $id_idioma!="en" && $id_idioma!="fr")
$id_idioma="en";
Y en en un lugar de la página de cuyo nombre no quiero
acordarme:
Código PHP:
<a href="principal.php?idioma_cookie=es"><img src="imagenes/spain.gif" border=0 target="principal"></a>
<a href="principal.php?idioma_cookie=en"><img src="imagenes/greatbritain.gif" border=0 target="principal"></a>
<a href="principal.php?idioma_cookie=fr"><img src="imagenes/france.gif" border=0 target="principal"></a>
Ese es el lugar donde muestro las banderitas con diferentes idiomas. Al ser pulsadas esas banderitas, en el 'principal.php' hago:
Código PHP:
if (isset($_GET['idioma_cookie'])) {
// Cookie con caducidad a las 1000 horas, que son unas cuantas...
setcookie("idioma_por_defecto",$_GET['idioma_cookie'],time()+3600000);
header("Location: index.html");
exit(0);
}
En este caso, el sitio está hecho para tres idiomas, el inglés, el francés y el castellano, es facilmente generalizable para otros. Tan solo habría que modificar la parte donde se escoge el idioma por defecto entre los 'soportados'.
1 Saludo.