Io mi sono inventato un arzigogolo simile, non so quanto funzionale o performante ma di sicuro funzionante.
Sono partito dal tuo stesso presupposto:
1) assenza di cookie = lingua italiana
2) con cookie, vedo quale lingua è selezionata
Un link in tutte le pagine mi permette lo switch delle lingue:
Il file lingua.php mi imposta il cookie e mi fa un redirect alla pagina homepage.
Codice PHP:
$lang = $_GET['l'];
setcookie("lingua", "$lang");
header("Location: home.php ");
Nella home.php (ed eventualmente in tutte le pagine che ti interessano multilingua) vai a controllare se esiste il cookie ed eventualmente ad estrapolarne la variabile contenuta.
Codice PHP:
if (!isset($_COOKIE['lingua'])) {
// se non è stata scelta la lingua visualizzare il template
// ITALIANO
} else {
// se il cookie esiste vado a leggerne il contenuto
if ($lingua == "en") {
// prelevare il template INGLESE
} else {
// prelevare il template ITALIANO
}
}
Spero di essere stato chiaro.