Script zum Auslesen von Sprache, Browser und Weiterleitung
Tom T
- javascript
Hallo,
Kennt wer von euch ein Skript, dass folgendes auslesen kann wenn jemand eine Site betritt:
-eingestellte Sprache des Browsers
-Browserversion
und dann automatisch zu der richtigen Seite weiterleitet?
Beispiel: Ich habe einen englischen Browser und habe auch zwei Homepages in Englisch und Deutsch. Nun soll der Besucher automatisch zu der englischen Seite weitergeleitet werden.
Ebenfalls wenn jemand noch den Netscape 4.x hat soll er auf eine bestimmte "Netscape 4.x freundliche Seite" weitergeleitet werden?
Gruß Tom
Hi,
-eingestellte Sprache des Browsers
geht nicht.
-Browserversion
Geht nicht wirklich und ist nutzfrei.
und dann automatisch zu der richtigen Seite weiterleitet?
Ist sinnfrei.
Beispiel: Ich habe einen englischen Browser
Erstaunlich, ich auch. Meine Seiten bevorzuge ich meistens auf Deutsch.
Nun soll der Besucher automatisch zu der englischen Seite weitergeleitet werden.
Automatische Weiterleitungen sind pfui bäh bäh. Beschäftige Dich mit Content-Negotiation.
Ebenfalls wenn jemand noch den Netscape 4.x hat soll er auf eine bestimmte "Netscape 4.x freundliche Seite" weitergeleitet werden?
Diesen multiplen Mehrfachaufwand möchtest Du nicht haben, zumal Du wunderbar eine universell nutzbare Version Deiner Seiten erstellen kannst.
Cheatah
Heyho!
und dann automatisch zu der richtigen Seite weiterleitet?
Ist sinnfrei.
Teilweise. Ich kann seinen Hintergedanken nachvollziehen. Zumal der Otto-Normalverbraucher den Browser hat, der bei ihm vorinstalliert war - also der IE auf Deutsch ;)
Ich würde dir raten einen Link zu einer englischen Version auf deine Seite zu stellen. Kannst du ja mit einem netten englischen Fähnchen dekorieren ;)
Chapeau!
Mastershrimp
Hi,
Ich würde dir raten einen Link zu einer englischen Version auf deine Seite zu stellen. Kannst du ja mit einem netten englischen Fähnchen dekorieren ;)
Warum sollte ein Staats-Symbol für eine Sprache verwendet werden?
Außerdem:
Wieviele US-Amerikaner kennen die englische Flagge?
Vermutlich noch weniger als Deutsche sie kennen...
cu,
Andreas
hi,
Teilweise. Ich kann seinen Hintergedanken nachvollziehen. Zumal der Otto-Normalverbraucher den Browser hat, der bei ihm vorinstalliert war - also der IE auf Deutsch ;)
otto normaltourist, der in einem hongkonger oder südchilenischen internetcafe die seite aufruft, hat dort aber aller wahrscheinlichkeit nach keinen "deutschen" IE vor sich.
spricht er jetzt wirklich so gut hongkongnesisch oder südchilenisch, dass er die seite in dieser sprachversion ebenfalls nutzen und verstehen kann?
gruss,
wahsaga
hallo,
[...] Beschäftige Dich mit Content-Negotiation.
soweit ich das konzept der content-negotiation verstanden habe, entscheidet der server anhand der beschaffenheit des http-requests (die auch von der konfiguration der clientsoftware beeinflußt wird), was ausgeliefert wird.
der benutzer bekommt nicht unbedingt mit, daß eine angeforderte ressource z.b. auch noch in anderen sprachen verfügbar wäre.
beispiel 1:
der benutzer ist ein webautor, der ein dokument verlinken will.
er gibt seinem a-element ein hreflang-attribut mit dem - seiner meinung nach - passenden wert.
folgt ein anderer benutzer mit einem anders konfigurierten browser dem link, dann könnte die information im hreflang-attribut schlichtweg falsch sein.
gut - der autor ist in diesem fall selbst schuld, er hätte gründlich kontrollieren müssen.
in diese "falle" können m.e. aber auch erfahrene webautoren tappen.
hat das konzept der content-negotiation in diesem fall nicht einen pferdefuß?
beispiel 2:
der client sei ein suchroboter, der keine bevorzugte sprache im accept-language header mitsendet.
bleiben dem robot alle "alternativen" sprachversionen einer ressource vorenthalten, wenn der server mit content-negotiation arbeitet?
lg
MADU
Hi,
soweit ich das konzept der content-negotiation verstanden habe, entscheidet der server anhand der beschaffenheit des http-requests (die auch von der konfiguration der clientsoftware beeinflußt wird), was ausgeliefert wird.
der benutzer bekommt nicht unbedingt mit, daß eine angeforderte ressource z.b. auch noch in anderen sprachen verfügbar wäre.
korrekt. Es gehört zum guten Stil, Links zu anderen verfügbaren Sprachversionen anzubieten. Häufig wird dem Localpart der URL einfach ein ".xy" angehängt, also etwa "foo.html.en" für die explizit englische Version.
er gibt seinem a-element ein hreflang-attribut mit dem - seiner meinung nach - passenden wert.
Das hat aber mit dem Request an den Server nicht viel zu tun.
bleiben dem robot alle "alternativen" sprachversionen einer ressource vorenthalten, wenn der server mit content-negotiation arbeitet?
Ja, wenn man es schlecht macht. Nein, wenn man es gut macht.
Cheatah
hallo,
Das hat aber mit dem Request an den Server nicht viel zu tun.
das nicht - es kann jedoch den benutzer irreführen, wenn der inhalt des hreflang-attributs z.b. per css "sichtbar" gemacht wird.
Ja, wenn man es schlecht macht. Nein, wenn man es gut macht.
gut = content-negotiation plus verlinkung der alternativen?
schlecht = content-negotiation ohne verlinkung der alternativen?
lg
MADU
Hi,
das nicht - es kann jedoch den benutzer irreführen, wenn der inhalt des hreflang-attributs z.b. per css "sichtbar" gemacht wird.
ja, dem ist bei unvorsichtiger Verwendung von Markup und Style so :-)
gut = content-negotiation plus verlinkung der alternativen?
schlecht = content-negotiation ohne verlinkung der alternativen?
Ja. Siehe auch z.B. wahsagas Artikel etwas weiter unten in diesem Thread.
Cheatah
Moin!
Ja, wenn man es schlecht macht. Nein, wenn man es gut macht.
gut = content-negotiation plus verlinkung der alternativen?
schlecht = content-negotiation ohne verlinkung der alternativen?
Schlechte Content-Negotiation wäre, wenn man die "preferred language"-Einstellung in seinem Browser umschalten müßte, wenn man eine spezielle Sprachversion haben will.
Mittelmäßige Content-Negotiation wäre, wenn man eine Seite auch explizit in anderen Sprachversionen anfordern könnte, dies aber beim Surfen auf der Site sofort wieder verloren ginge.
Gute Content-Negotiation behält sich die explizite Auswahl des Besuchers, und wählt ansonsten (bzw. vor so einer expliziten Auswahl) gemäß der Einstellung im Browser.
Das, was mit dem Apache-Modul zur Content-Negotiation möglich ist, ist leider bestenfalls mittelmäßig. Das Problem ist, dass man dynamisch generierte Seiten einsetzen müßte, um die irgendwann einmal erfolgte Benutzerauswahl dauerhaft zu berücksichtigen.
Denn die in allen Sprachversionen der Seite enthaltenen Links müssen natürlich zuerst einmal universell sein, also immer auf "seite.html" verlinken - der Server sucht dann dynamisch "seite.de.html" als Datei heraus und liefern diese unter der URL "seite.html" aus, sofern Deutsch als bevorzugte Sprache gewählt wurde.
Wenn man explizit die englische Seite sehen will, muß man einen Link nach "seite.en.html" machen. Aber diese statische Seite hat natürlich außer zu den identischen Seiten in anderen Sprachen auch nur "normale" Links zu anderen Seiten. Ein Link zur "seite2.html" wird also bei deutscher Spracheinstellung wieder zur deutschen Version führen.
Und noch etwas ist problematisch: Welche Sprache verstehen Suchmaschinenspider?
Da es ja nur eine einzige URL für die Seiten gibt, und die Sprache sich nach der Einstellung des Browsers richtet, hat man bei Suchmaschinen ein Problem. Der Spider wird entweder nur die default-Sprache indizieren, weil kein Sprachwunsch übermittelt wird, oder es wird vom Spider beispielsweise nur die englische Version indiziert - und das, wo man soviel Zeit in die ganzen anderen Übersetzungen gesteckt hat. Noch schlimmer dürfte es werden, wenn einzelne Seiten nicht in der gewünschten Sprache existieren. Dann kommt eine Ersatzsprache - und das Durcheinander in der Suchmaschine ist vermutlich dann unübertreffbar.
Und auch Proxyserver haben natürlich ein Problem damit, dass unter einundderselben URL unterschiedliche Inhalte gespeichert werden. Dagegen gibt es natürlich Mittel (denn auch die Problematik, dass eine Seite dynamisch gzip-komprimiert ausgeliefert werden könnte, muß ja berücksichtigt werden), aber es ist nicht unbedingt schön.
Ich bevorzuge deshalb eine relativ simple Methode: Es gibt je Sprache ein Unterverzeichnis, und die Hauptstartseite besteht aus einem Skript, welches die bevorzugte Sprache analysiert und einen passenden Redirect ausgibt. Dann kann man innerhalb der Sprachversion prima verlinken, und auch ein Sprachwechsel ist ohne Serverdynamik problemlos dauerhaft für den Benutzer machbar.
- Sven Rautenberg
Hi,
-eingestellte Sprache des Browsers
-Browserversion
http://www.vampirehost.de/gruft/coding/jscript/sysvars.htm
und dann automatisch zu der richtigen Seite weiterleitet?
http://www.vampirehost.de/gruft/coding/html/umlenker.htm
Beispiel: Ich habe einen englischen Browser und habe auch zwei Homepages in Englisch und Deutsch. Nun soll der Besucher automatisch zu der englischen Seite weitergeleitet werden.
Siehe bisherige Anmerkungen - insbes. von Sven ... ;-)
Ebenfalls wenn jemand noch den Netscape 4.x hat soll er auf eine bestimmte "Netscape 4.x freundliche Seite" weitergeleitet werden?
Total überflüssig. Im Zweifel Standard-HTML und nicht-kompatiblen CSS-Code vorm alten Navigator z.B. mit IMPORT verstecken (s. z.B. http://www.vampirehost.de/gruft/coding/css/linksign.htm).
Gruß, Cybaer