Sprache des Benutzers erkennen
Geschrieben von: Christian Koller 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 BrowsersManche 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ßbemerkungWill 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. Download des CodesKlicken Sie hier, um den Download zu starten. Verwandte Artikel
Neue Inhalte einer Web Site für den Benutzer hervorheben Wenn Sie jetzt Fragen haben...Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten. Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.
Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.
©2000-2006 AspHeute.com |