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:
codice:
Italiano
English
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.