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], 0, 2) == "es"){$idioma = "es";}
if (substr($idiomas[$i], 0, 2) == "en"){$idioma = "en";}
if (substr($idiomas[$i], 0, 2) == "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