Hallo und guten Abend,
wegen der Merkfähigkeit der Seite für die Landessprache hast Du drei Möglichkeiten:
- Cookie setzen
- URL mit Parameter versehen
- Mit Session arbeiten (dann wahrscheinlich auch mit Cookie)
Grundlegend machst Du diese Abfrage (mein Pseudocode):
$lang = MY_LANG_DEFAULT;
if (isset($_GET['lang']) && $_GET['lang'] == 'de')
{
$lang = 'de';
}
$lang_text = file_get_contents(MY_TEXT_DIR . "/$lang/" . $page . '.htmlbody');
Wo Du $lang_text dann ausgibst, ist Deine Sache.
Und dann kannst Du Dir $lang auch in der Session merken.
Oder Du hängst an alle Links und alle Action-Attribute die in der resultierenden Seite enthalten sind, das Parameter-Value-Pärchen "lang=de" an. Dazu eignet sich die Funktion http://php.net/manual/en/function.http-build-query.php :
GET-Parameter nehmen, ins Array von $_GET den Parameter eintragen und mit http_buld_query() das neue Query für alle Links aufbauen.
Oder Du setze einen Cookie. Den musst Du dann natürlich auch abfragen.
$lang = MY_LANG_DEFAULT;
if (isset($_COOKIE['lang']) && $_COOKIE['lang'] == 'de')
{
$lang = 'de';
}
elseif (isset($_GET['lang']) && $_GET['lang'] == 'de')
{
$lang = 'de';
setcookie('lang', 'de')
}
$lang_text = file_get_contents(MY_TEXT_DIR . $page . "/$lang" . '.htmlbody');
http://php.net/manual/en/function.setcookie.php
Den Cookie kannst Du dann auch "haltbar" machen, damit beim nächsten Besuch der Domain noch bekannt ist, was der Teilnehmer wollte.
Und nun muss man sich noch überlegen, wie man das Zurückschalten auf die Standardsprache einbaut.
Im Prinzip benötigst Du da einen extra Parameter "switchlang=en" oder "switchlang=de", der nur beim Umschaltlink anhängt und dann in deiner Ausscheidungsmatrix Priorität hat.
Und wenn das Konstrukt steht, kann man es mit "switch case" bestimmt auch hübscher formulieren.
Grüße
TS