erkennung des users und sprachumleitung
mike
- javascript
0 CirTap0 Cheatah0 Calocybe
0 eddie walker
hallo forum,
ich probiere mit einem script herum, das automatisch ausliest, welche browser language der user nutzt.
anschließend soll er auf die betreffende seite umgeleitet werden
z.b.
en - englisch.htm
de - deutsch.htm
leider funktioniert das nicht richtig...
hier das script und danke für eure tips
(oder hat jemand ein fertiges script was funktioniert ??)
mike
<script language="JavaScript">
<!--
if (navigator.browserLanguage == "de" navigator.language == "de")
window.location.href="deutsch/index_de.htm"
else if (navigator.browserLanguage == "en" navigator.language == "en")
window.location.href="english/index.html"
else if (navigator.browserLanguage == "it" navigator.language == "it")
window.location.href="italiano/index_it.htm"
else if (navigator.browserLanguage == "fr" navigator.language == "fr")
window.location.href="francais/index_fr.htm"
//-->
</script>
Hallo mike,
else if (navigator.browserLanguage == "en" navigator.language
.browserLanguage wird nicht von allen Browsern unterstützt.
Muß auch nicht, da es ja eine "Eigenschaft" des Anwendungs-Objektes (navigator) ist und die kann jeder Hersteller erweitern wie er will.
Du solltest wenn möglich die Sache dem Server überlassen. Beim Apache kann dies via .htaccess geschehen.
Michael Schröpl hat hierzu einen guten Artikel geschrieben:
http://www.teamone.de/selfaktuell/artikel/schroepl04.htm
Viel Spaß
CirTap
Hi,
ich probiere mit einem script herum, das automatisch ausliest, welche browser language der user nutzt.
anschließend soll er auf die betreffende seite umgeleitet werden
User-Agent: Mozilla/4.5 [en] (Win98; I)
Accept-Language: de,de-DE,de-AT,de-CH
A ja nje ponimaju po-nemjetski.
leider funktioniert das nicht richtig...
Das _kann_ gar nicht funktionieren, denn die einzige auch nur im Ansatz verläßliche Informationsquelle über die derzeit bevorzugte Sprache des Benutzers ist - der Benutzer. Frage ihn also. Am einfachsten geht das mit Links, um nicht zu sagen: damit geht es mit links.
Cheatah
Hallo Cheatah!
User-Agent: Mozilla/4.5 [en] (Win98; I)
Accept-Language: de,de-DE,de-AT,de-CHA ja nje ponimaju po-nemjetski.
Dann musst Du Deinen Browser richtig konfigurieren, in dem Fall also [ru] fuer die bevorzugte Sprache einstellen.
Das _kann_ gar nicht funktionieren, denn die einzige auch nur im Ansatz verläßliche Informationsquelle über die derzeit bevorzugte Sprache des Benutzers ist - der Benutzer.
Und der sagt es seinem Browser, und der sagt es dem Webserver (ueber den Accept-Language Header). Mit JS kann man das nur leider nicht abfragen, da navigator.language lediglich die Sprache des UIs des Browsers zurueckgibt.
Was damit leider auch nicht moeglich ist (meines Wissens), ist die *Originalsprache* zu verlangen. Eine Uebersetzung verliert ja fast zwangslaeufig an Qualitaet. Also moechte ich Texte eines englischen Autors lieber in Englisch lesen, Texte eines deutschen lieber in Deutsch. (Und bei einer anderen Originalsprache muss ich hoffen, dass wenigstens eine englische Uebersetzung vorliegt. *g*) Vielleicht denkt sich ja dafuer mal noch jemand was aus.
So lange
Was damit leider auch nicht moeglich ist (meines
Wissens), ist die *Originalsprache* zu verlangen.
Eine Uebersetzung verliert ja fast zwangslaeufig
an Qualitaet. Also moechte ich Texte eines englischen
Autors lieber in Englisch lesen, Texte eines
deutschen lieber in Deutsch. (Und bei einer anderen
Originalsprache muss ich hoffen, dass wenigstens
eine englische Uebersetzung vorliegt. *g*)
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4
sagt:
If no language-range in the field matches the tag, the
language quality factor assigned is 0.
If no Accept-Language header is present in the request,
the server SHOULD assume that all languages are equally
acceptable.
If an Accept-Language header is present, then all
languages which are assigned a quality factor greater
than 0 are acceptable.
Das bedeutet vermutlich, daß Du durch die Angabe eines
Accept-Headers dem Server *verbietest*, Dir eine Sprache
*seiner* Wahl anzubieten, wenn er eine Sprache *Deiner*
Wahl unterstützt.
Würdest Du *keinen* Accept-Header senden, dann hätte
der Server die Wahl ... würdest Du eine leere Liste von
Sprachen senden, ebenfalls.
Vielleicht denkt sich ja dafuer mal noch jemand was
aus.
HTTP/1.2 ??? ;-)
Hi,
Accept-Language: de,de-DE,de-AT,de-CH
A ja nje ponimaju po-nemjetski.
Dann musst Du Deinen Browser richtig konfigurieren, in dem Fall also [ru] fuer die bevorzugte Sprache einstellen.
das tue ich nicht, weil dann derjenige, dessen Computer ich gerade benutze, sauer wird. Ich bin dankbar, daß er mir das Gerät zur Verfügung stellt, während meines/r Urlaubes/Schüleraustausches/Dienstreise/Auslandsstudiums/etc.
Die Einstellungen des Systems sind _niemals_ eine verläßliche(!) Informationsquelle darüber, was der aktuelle Benutzer zum aktuellen Zeitpunkt bevorzugt.
Cheatah
hi!
ich verwende immer englishsprachige programme, weil die leichter für mich zu verstehen, handeln sind, aber ne website möcht ich mir lieber in deutsch ansehen.
eine verlässliche möglichkeit den user auf "seine sprache" weiterzuschalten, gibt es nicht wirklich. wahrscheinlich is es am besten zwei links zur auswahl zu stellen - deutsch und english
schönen gruss
this -> *;_;* walker