Yo lo que hago es un archivo php con un array con todos los textos de la web. Por ejemplo:
lang_es.php y lang_en.php
Luego puedes hacer el include de la variable $_GET['i'] y si no existe haces el include del lang_es.php, algo así:
if(!isset($_SESSION['lang']) { $_SESSION['lang'] = 'es';
}
if(isset($_GET['i']) && $_GET['i'] != '') { $_SESSION['lang'] = $_GET['i'];
}
include 'lang_'.$_SESSION['lang'].'.php';
Y dentro de cada archivo puedes hacer algo así:
$texts['Home'] = 'Inicio';
$texts['Profile'] = 'Perfil';
...
Y ya en el HTML (que tendrá que ser un php) pones por ejemplo:
<a href="....."><?php echo $texts['Home']; ?></a>
Yo no lo hago exactamente así, pero algo parecido.