Código PHP:
<?php
//iniciamos session
session_start();
//comprobamos si la variable por el GET esta cargada...
if(empty($_GET['lang'])){
//la variable no esta cargada... sale por omision idioma ES
$_SESSION['varIdioma'] = "es";
//la variable esta cargada con algun idioma seleccionado mediante lang=?
}else{
//pasamos la variabla GET a una SESSION
if(!empty($_GET['lang'])){$_SESSION['varIdioma'] = $_GET['lang'];}
//comprobamos que exista el fichero de idioma...
if(!file_exists("lang/".$_SESSION['varIdioma']."/lang.inc.php")){
//si no existe el fichero.-.. sale por omision el ES, tb puedes poner una ventana de error,
//o linkar hacia tu sistema de erroes index.php?error=5
header ("Location: index.php?lang=es");
exit;
}else{
//carga del fichero idiomas
switch ($_SESSION['varIdioma']) {
case $_SESSION['varIdioma']: require("lang/".$_SESSION['varIdioma']."/lang.inc.php"); break;
}//end switch
}//end if_file
}//end if
?>
<br>
<a href="index.php?lang=es">Español</a><br>
<a href="index.php?lang=en">English</a><br>
<?php
echo $_SESSION['varIdioma'];//idioma seleccionado
?>
<br>