Hi,
Haben wir einen URL-Parameter "lang" mit einer Sprachangabe, die wir unterstützen?
Ja: Sprache übernehmen und in Session speichern
Nein: Existiert ein Eintrag "lang" in der Session?
Ja: Sprache aus Session übernehmen
Nein: Wünscht sich der Client im Accept-Language-Header eine Sprache, die
wir unterstützen?
Ja: Sprache aus Header übernehmen
Nein: Festgelegte Default-Sprachvariante nehmenHier sehe ich eine Problematik, wenn verschiedene Seiten (PHP-Programme) unterschiedliche Sprachen anbieten. Etwa, wenn ein Projekt 5-sprachig, zusätzliche Seiten aber 6-sprachig sind. Die 6. Sprache sei spanisch.
Der Spanier ruft eine beliebige Seite über Google auf, die NICHT spanisch enthält. Nach deinem Entscheidungsbaum wird dann die Default-Sprache festgelegt, also deutsch.
Nun wechselt er auf eine Seite, die "es" zur Verfügung hätte, er wird aber weiterhin deutsch bedient.
Ich hätte das jetzt anders interpretiert. Das Probjekt wird zuerst 6-sprachig angelegt. Spanier kommt auf die Seite und wählt implizit über seinem Accept-Header die Sprache "es". Nun wird ihm das erste Dokument, dass es vieleicht nicht auf spanisch gibt, auf deutsch angezeigt (mit dem Hinweis, dass es für dieses Dokument keine spanische Übersetzung gibt). Kommt er auf ein Dokukument mit spanisch, greift sein Accept-Header.
Warum sollte man ein Projekt, welches 6 Sprachen unterstützt, nur fünfsprachig anlegen?