Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

Sprache des Benutzers erkennen

Geschrieben von: Christian Koller
Kategorie: ASP Tricks

This printed page brought to you by AlphaSierraPapa

Das Internet ist ein wunderbares Medium - Man hat auf seiner Internetsite Besucher aus aller Welt. Die Schattenseite dabei ist, nicht jeder spricht Englisch oder Deutsch. In vielen internationalen Sites findet man daher Links oder Buttons zu Versionen der Site in anderen Sprachen vor.

Möchte man es dem Besucher ein wenig bequemer machen, so kann man in einer ASP Seite durchaus herausfinden, welche Sprache der Besucher denn gerne auf Webseiten lesen würde, und die dementsprechende Version der Seite anzeigen.

Woher kann man nun vom Webserver aus Informationen über die Sprache des Users der Website bekommen?

Zum einen besitzt (fast) jeder moderne Browser die Möglichkeit, daß der Benutzer die Sprache angibt, die er auf Websites mit mehrsprachigem Inhalt gerne lesen würde. Meist ist diese Einstellung automatisch auf die Standardsprache des Betriebssystems oder Sprachversion der Browsersoftware gesetzt.

Zum anderen schickt der Browser eine Kurzbeschreibung seiner selbst zum Webserver, die oft auch Informationen über die Sprachversion des Browsers enthält.

Wie man auf beiden Wegen Informationen über die bevorzugte Sprache des Benutzers gewinnt und dementsprechende Inhalte auf einer ASP Seite anzeigt, möchte ich in den folgenden Absätzen schildern.

Abfragen der bevorzugten Sprache des Benutzers.

Jeder moderne Browser sendet Informationen über die bevorzugte Sprache des Benutzers zum Webserver. Die Spracheinstellung in einem Internet Explorer kann zum Beispiel unter dem Menüpunkt Extras, Internetoptionen vorgenommen werden. Im Fenster der Internetoptionen können Sie über den Button "Sprachen" das Fenster zu den "Spracheinstellungen" öffnen.

Wenn Sie den Button "Hinzufügen" drücken, so können Sie weitere Sprachen zur Liste der gewünschten Sprachen hinzufügen. Der Wert in der eckigen Klammer, der jeweils nach der Sprache steht (zum Beispiel [de] oder auch [de-at]), ist ein Code der für die eingestellte Sprachversion steht. Dieser Code wird beim Aufruf jeder Internetseite an den Webserver geschickt.

Das Auslesen des vom Browser geschickten Sprachencodes unter ASP gestaltet sich einfach. Da der Code im sogenannten HTTP Header zum Server geschickt wird, kann man seinen Wert unter ASP aus einer ServerVariablen mittels Request.ServerVariables auslesen. Hat der Benutzer mehrere Sprachen gewählt, so werden alle zurückgegeben:

 strSprachCode = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
 Response.Write(strSprachCode)

Das Ergebnis des Scripts auf einem Browser, der deutschsprachigen und englischsprachigen Inhalt bevorzugt, könnte wie folgt aussehen: de-at,en-us

Das folgende ASP Skript liest den Spachcode aus und gibt entsprechend der Sprache eine Meldung in Deutsch oder in Englisch aus:

Sourcecode der Datei BevSprache.asp (im Download):

 strSprachCode = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
 iDeutsch = Instr(strSprachCode, "de") 
 iEnglisch = Instr(strSprachCode, "en") 
 If iDeutsch > 0 Then
    AcceptDeutsch = TRUE
 Else 
    iDeutsch = 9999
 End If
 If iEnglisch > 0 Then
    AcceptEnglish = TRUE
 Else
    iEnglisch = 9999
 End If

 If (iDeutsch < iEnglisch) Then
    Response.Write("Willkommen auf meiner Internetseite!")
 ElseIf (iEnglisch < iDeutsch) Then
    Response.Write("Welcome to my webpage!")
 Else
    Response.Write("Welcome - Willkommen")
 End If

Man kann also, entsprechend Reihungen der gewünschten Sprachen, dem Besucher der Internetseite die passende Sprache präsentieren.

Herausfinden der Sprachversion des Browsers

Manche Browser geben im Browserstring, der an den Webserver geschickt wird, Angaben über die Sprachversion des Browsers.

Aus ASP läßt sich der Browserstring wie folgt auslesen:

strBrowserString = Request.ServerVariables("HTTP_USER_AGENT")

Sehr oft enthält nun der Browserstring Sprachinformationen, wie zum Beispiel die Zeichenkette [en] für Englisch oder [de] für Deutsch. Nicht jeder Browser sendet Sprachinformationen im Browserstring. Aber vor allem bei älteren Browsern, die keinerlei sonstige Sprachinformationen zum Server schicken, findet sich sehr oft im Browserstring die Sprachversion des Browsers. Da oftmals deutschprachige Besucher auch deutsche Browserversionen benutzen, ist es naheliegend, daß die Sprachversion des Browsers oftmals mit der dem User vertrauten Sprache übereinstimmt.

Sourcecode der Datei SprachVer.asp:

strBrowserString = Request.ServerVariables("HTTP_USER_AGENT")

Response.Write("Der Browserstring ist wie folgt:" & _
   strBrowserString & "<BR>")
If Instr(strBrowserString,"[en]") Then
   Response.Write("Englischer Browser!")
ElseIf Instr(strBrowserString,"[de]") Then
   Response.Write("Deutscher Browser!")
Else
   Response.Write("Sprachversion des Browsers unbekannt!")
End If

Schlußbemerkung

Will man die bevorzugte Sprache des Benutzers einer Internetseite herausfinden, so kann man die vom Browser zum Server gesendeten Informationen dazu benutzen. ASP hat Zugriff auf diese Informationen über die Request.ServerVariables Collection.

This printed page brought to you by AlphaSierraPapa

Download des Codes

Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20001004.zip

Verwandte Artikel

Neue Inhalte einer Web Site für den Benutzer hervorheben
http:/www.aspheute.com/artikel/20010509.htm
Optimiertes Erstellen von DropDowns
http:/www.aspheute.com/artikel/20040901.htm

 

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.