Page 1 of 1

Wie wird die aktuelle Sprache programmtechnisch erkannt?

Posted: Wed 29.Jul.2009 14:55
by Helmut
Ich habe in dieser Hinsicht ein Implementierungsproblem, weil mir nicht klar ist, wie die jeweils aktuelle Sprache programmtechnisch erkannt werden soll. Es soll ja möglicherweise einmal über die URL gehen, anderererseits sollte aber der Teilnehmer auch die Möglichkeit haben, auf der Startseite selbst auszuwählen, welche Sprache verwendet werden soll, damit mit dieser Information die entsprechenden Labels verwendet werden können. Es wahrscheinlich eher sinnvoll, die Applikation nur einmal laufen zu lassen, als jeweils für jede Sprachversion.
Hier sind zwei Fragen zu formulieren, die Bertram möglicherweise einfach beantworten kann:
Wie kann man in der Anwendung die verwendete URL für eine Session auswerten?
Wo ist für eine Session sinnvoll die die Information über die Sprache zu speichern?
Beim Schreiben fällt mir auch schon selbst eine mögliche Lösung für beide Punkte ein. Ich teste das mal aus, werde aber trotzdem eine Mail an Bertram formulieren, weil ich auch noch Fragen wegen des UTF-8 Formats habe.

Posted: Fri 21.Aug.2009 09:15
by Helmut
Ich hatte eine entsprechende Anfrage an Bertram gestellt und folgende Antwort bekommen:
Bertram wrote:Browser senden als HTTP-Header für gewöhnlich die präferierte Sprache mit, so dass man diese vor dem Einloggen verwenden könnte:
Beispiel:
Accept-Language=de-de,de;q=0.8,en;q=0.5,en-us;q=0.3

Im Teilnahmebereich könnte man in der Webanwendung vor der Anmeldung diesen Header abfragen. Die gewählte Sprache könnte man sich dann ja in der Tomcat-Session merken. Bei der Anmeldung wird dann die Sprache gespeichert, so dass nach dem Einloggen die Sprache des Nutzers eindeutig ist.

Im Apache-Webserver gibt es die Möglichkeit, aufgrund des Accept-Language Headers eine Weiche einzubauen, um automatisch die zur Sprache passende Startseite aufzurufen.
Beispiel:
#The 'Accept-Language' header starts with 'de'
#and the test is case-insensitive ([NC])
RewriteCond %{HTTP:Accept-Language} ^de [NC]
#Redirect user to /de/hauptseite address
#sending 301 (Moved Permanently) HTTP status code
RewriteRule ^$ /de/hauptseite [L,R=301]

RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule ^$ /es/pagina-primera [L,R=301]

#For every other language (including English :)) use English
RewriteRule ^$ /en/main-page [L,R=301]

Typisch ist für Webseiten ja, dass eine Sprache vorausgewählt ist und Links zu den anderen Sprachen führen. Im CMS hätten die verschiedenen Sprachen dann unterschiedliche URLs.

Habt ihr eigentlich vor, ein anderes CMS zu verwenden? Falls ja, müsste da den Code-Block übernommen werden, der den Referer der ersten Gleichklang-Seite als Cookie setzt, damit man bei der Anmeldung auslesen kann, woher der Teilnehmer ursprünglich gekommen (Seite, Suchbegriffe, Partnerprogramm).


Ich werde mir das mal ansehen. Was die Frage nach dem neuen CMS angeht, so weiß ich da auch nicht so genau. Es stellt sich überhaupt die Frage, inwieweit das alte CMS UTF-8 unterstützt.
Gruß Helmut