Umleitung nach Nutzersprache

Manchmal will man für bestimmte Besucher eine Seite in ihrer eigenen Sprache anbieten.
Damit das möglich ist, teilt Ihr Browser bei normaler Einstellung Ihre gewünschte Sprache dem Server mit.
Das wiederum kann man auswerten.
Manchmal wil man die Sprache aber manuell umschalten. Auch kein Problem.

Dieser Codeschnippsel ist dazu gebaut.
Ich erkläre es mal grob anhand dieser Darstellung:

Den untenstehenden Code nach Bedarf anpassen:

Ohne_Titel_1
<?php session_start();

/*
Sprachweiterleitung / Martin Scheiben
Erstelldatum:15.06.2010, 
Letzte Änderung: 30.03.2018

Kann die Sprache per GET (index.php?_Sprachweiterleitung=EN) umschalten.
Wurde keine Sprache angegeben wird versucht die Sprache des Browsers zu nutzen.
Die folgenden Seiten müssen dazu nach dem Muster index_EN.php oder index_DE.php angeschrieben sein. Also Seitenname, Underline, Länderkürzel
*/

// ---- CONFIG
$strDefaultLg = &#039;EN&#039;; // Die Seite (index_EN.php) wird genommen wenn die gewünschte Sprache nicht verfügbar ist
// ---- ENDE CONFIG

if (!isset($_SESSION[&#039;_Sprachweiterleitung&#039;])) $_SESSION[&#039;_Sprachweiterleitung&#039;]= &#039;&#039;;
if (isset($_GET[&#039;_Sprachweiterleitung&#039;])) $_SESSION[&#039;_Sprachweiterleitung&#039;] = $_GET[&#039;_Sprachweiterleitung&#039;];

// Versuche, die Sprache des Browsers zu ermitteln:
if ($_SESSION[&#039;_Sprachweiterleitung&#039;] == &#039;&#039;) 
{
    $strSprache = trim($_SERVER["HTTP_ACCEPT_LANGUAGE"]);
    $_SESSION[&#039;_Sprachweiterleitung&#039;] = $strSprache;
}
    else $strSprache = $_SESSION[&#039;_Sprachweiterleitung&#039;];
    
if ($strSprache != &#039;&#039;)
{ 
    $file = &#039;index_&#039;.strtoupper(substr($strSprache,0,2)).&#039;.php&#039;;
    
    if(file_exists($file))
    {
        if (basename($file) != basename($_SERVER[&#039;PHP_SELF&#039;])) die (header(&#039;Location: &#039;.$file));
        else die (header(&#039;Location: index_&#039;.$strDefaultLg.&#039;.php&#039;));
    } 
    else header(&#039;Location: index_&#039;.$strDefaultLg.&#039;.php&#039;);
    exit; 

}

?>