Logo von www.onlex.de
Formular Workshop

Lerne das Erstellen von HTML-Formularen für deinen Onlex-Formmailer
Onlex auf Facebook verwenden Onlex bei Google empfehlen Onlex auf Twitter verwenden

verschiedensprachige Sendebestätigungseiten
<script>

Der Formmailer von Onlex.de erfreut sich mittlerweile internationaler Beliebtheit. Wir haben mittlerweile verschiedene Nutzer rund um den Globus: Aus Spanien, Brasilien, den Niederlanden, verschiedenen osteuropäische Ländern und sogar aus Asien erhalten wir hin und wieder Support Anfragen.

Eine Frage war, ob man bei Nutzung einer mehrsprachigen Website auch verschiedensprachige Sendbestätigungsseiten nutzen kann.
Eine einfache Abhilfe wäre, wenn man mehrere Sendebestätigungstexte in verschiedenen Sprachen auf eine Seite setzen würde. Je nach Grösse des Zielpublikums müsste der Nutzer jedoch weit scrollen um "seine" Sprache wiederzufinden ;-)

Abhilfe schafft hier ein kleines JavaScript, welches die Sprache der Benutzerführung im Browser abfragt.
Dieses JavaScript muss auf der Seite eingebunden werden, die in den Einstellungen für den Formmailer von Onlex.de angegeben wurde.

Quelltext-Auszug:

<script type="text/javascript">
   if (navigator.language.indexOf("en") > -1) {
   window.location.href = 'en.html';
   }
</script>

Mit dem Objekt navigator besteht die Möglichkeit Eigenschaften des verwendeten Browsers abzufragen.
Für unsere Zwecke möchten wir nun die Sprache der Benutzerführung des Browsers abfragen: navigator.language. Mit indexOf wird in den folgenden Klammern nach einem Ausdruck in einer Zeichenkette gesucht. In diesem Fall "en".
Der nachfolgende Ausdruck > -1 hat eine etwas verwirrliche Bedeutung: Der Ausdruck kommt mehr (>) als gar nicht (-1) vor.

Die Sprache wird mit dem internationalen Kürzel angegeben: "en" für Englisch, "de" für Deutsch, "fr" für Französisch, ...
Eine komplette Liste der Sprachkürzel kann man in der SelfHTML finden: Übersicht zu Sprachenkürzeln nach ISO 639-1.

Selbstverständlich können auch auf verschiedene anderssprachige Seiten weitergeleitet werden:

<script type="text/javascript">
   if (navigator.language.indexOf("en") > -1) {
   window.location.href = 'en.html';
   } else if (navigator.language.indexOf("fr") > -1) {
   window.location.href = 'fr.html';
   }
</script>

Die erste Abfrage lautet: Wenn die die Sprache / das Sprachkürzel der Benutzerführung des Browsers (navigator.language) "en" beinhaltet (indexOf("en") > -1), dann öffne die Seite en.html (window.location.href = 'en.html';).
Sonst (else): Wenn die die Sprache / das Sprachkürzel der Benutzerführung des Browsers (navigator.language) "fr" beinhaltet (indexOf("fr") > -1), dann öffne die Seite fr.html (window.location.href = 'fr.html';).

Dieser Code kann beliebig weiter ausgebaut werden.

Jetzt klang alles ja sehr einfach. Der Code wird von allen aktuellen Browsern mit einer Ausnahme unterstützt: Der Internet Explorer von Microsoft.
Im Internet Explorer heisst die Eigenschaft navigator.browserLanguage.
Hieraus ergibt sich dann die Herausforderung: Man muss prüfen, ob die entsprechende Seite im Internet Explorer geöffnet ist und dann danach die entsprechende Seite öffnen.
Dies kann über eine weitere Eigenschaft des navigator Objekts herausgefunden werden: navigator.appName.

Quelltext-Auszug:

<script type="text/javascript">
   if (navigator.appName == "Microsoft Internet Explorer" && navigator.browserLanguage.indexOf("en") > -1) {
   window.location.href = 'en.html';
   }

   if (navigator.language.indexOf("en") > -1) {
   window.location.href = 'en.html';
   }
</script>

Im obigen Beispiel werden zweierlei Dinge abgefragt:
Da der Internet Explorer die Eigenschaft navigator.language nicht interpretieren kann, wird eine erste Abfrage mit den Eigenschaften navigator.appName und navigator.browserLanguage erstellt.
Wenn der Wert aus navigator.appName "Microsoft Internet Explorer" entspricht und (&&) die zweite Abfrage nach der Sprache der Benutzerführung des Browsers (navigator.browserLanguage) das entsprechende Länderkürzel enthält, dann wird die entsprechende Seite geöffnet.
Als zweites erfolgt die Abfrage der Sprache der Benutzerführung des Browsers auf ein entsprechendes Sprachkürzel, was von allen anderen Browsern korrekt interpretiert wird.

Wichtig ist, dass die Abfrage zum Internet Explorer zu Beginn gemacht wird, da sonst das Skript mit einer Fehlermeldung seitens des Internet Explorers abgebrochen wird, da dieser navigator.language nicht interpretieren kann.

Selbstverständlich lässt sich der obige Code beliegig erweitern:

Quelltext-Auszug:

<script type="text/javascript">
   if (navigator.appName == "Microsoft Internet Explorer" && navigator.browserLanguage.indexOf("en") > -1) {
   window.location.href = 'en.html';
   } else if (navigator.appName == "Microsoft Internet Explorer" && navigator.browserLanguage.indexOf("fr") > -1) {
   window.location.href = 'fr.html';
   }

   if (navigator.language.indexOf("en") > -1) {
   window.location.href = 'en.html';
   } else if (navigator.language.indexOf("fr") > -1) {
   window.location.href = 'fr.html';
   }
</script>

Überprüfen kann man sein Skript einfach mit einem Addon für Firefox und SeaMonkey:
Prefbar von Manuel Reimer.


^ zum Seitenanfang ^



© 2002 - 2016 · www.onlex.de - HomepageTools | Impressum | Sitemap