Tutorial "mehrsprachige Web-Sites"

In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern.

Zu Beginn müssen wir uns über die gewünschten Sprachen Gedanken machen.
Zum einem, da eine professionelle Übersetzung die Kosten einer Web-Site schnell vervielfachen kann (je nach Sprache), und zum Anderen müssen wir uns über die unterschiedlichen Zeichensätze / Zeichen der verschiedenen Sprachen bewusst sein.

Auf deutschen Tastaturen sind nicht alle Zeichen vorhanden, so dass wir auf den UniCode zurückgreifen müssen. Weiterhin müssen wir bedenken, dass bedingt durch die Grammatik und die unterschiedlichen Satzstellungen, die Schriftzüge in den verschiedenen Sprachen anders aussehen. Das Aussehen bezieht sich hier auf die Laufweite der Sätze, Absätze und der dadurch resultierenden Gestaltungmöglichkeiten.

Steht die Anzahl der Sprachen noch nicht fest oder soll die Möglichkeit gegeben werden, Sprachen nach Bedarf zu ergänzen, so sollten wir auf eine dynamische Lösung bauen.

Weiterhin sollte darüber nachgedacht werden, ob eine bestimmte Sprache an einer First-Lavel-Domain festgemacht werden soll, oder ob auch hier dynamisch agiert werden soll.

Im Folgenden werde ich folgende Ansätze vorstellen:

Die Statische Programmierung ist zu gleich die simpelste Lösung. Hierbei wird für jede Sprache die komplette Web-Site erstellt. Mit allem Links und Pages.

Vorteile:

  • relativ einfach zu erstellen
  • leicht erweiterbar auf andere Sprachen
  • es kann gut auf die unterschiedliche Textgestaltung eingegangen werden (unterschiedliche Laufweite der Schriftzüge)

Nachteile:

  • nicht sehr komfortabel bei Änderungen
  • es wird für jede Sprache eine eigene Programmierung benötigt
  • es wird für jede Sprache entweder eine Domain oder aber ein eigenes Verzeichnis benötigt

Beispiel für den Verzeichnisbaum:
Verzeichnisbaum

Eine solche Lösung unterschiedet sich nur wenig von der reinen statischen Programmierung. Sie unterscheidet sich in einem Script, welches je nach Herkunft der IP-Adresse oder der Browsersprache eine Sprachversion anbietet.

Hierbei wird "versucht" über die IP-Adresse die Herkunft des Users zu ermitteln. Jede IP-Adresse ist eindeutig und kann daher eine Provider zugewiesen werden. Je Nach Herkunftsland des Prowiders wird die Sprache ausgewählt.

Vorteile:

  • funktioniert bei jedem Browser, auch ältere Versionen

Nachteile:

  • der Prowider muss nicht unbedingt in dem Land sein, deren Sprache der User versteht
  • es gibt Programme, welche die IP-Adresse verschleiern / verändern
  • nicht sehr zuverlässig

Bei dieser Version wird die Sprache über eine Server-Variable gesteuert. Dabei wird die Browsersprache ausgelesen und dementsprechend die Sprache der Web-Site "eingestellt".

Vorteile:

  • sehr zuverlässige Methode
  • funktioniert auch bei Mehrbenutzersystemen
  • es genügt eine Domain

Nachteile:

  • es wird eine Serverseitige Programmiersprache benötigt (am besten php)

Funktionsprinzip:
Das Funktionsprinzip beruht auf das Auslesen der Server-Variablen "HTTP_ACCEPT_LANGUAGE". Diese Variable wird von jedem Browser an den Webserver übergeben und kann von diesem ausgewertete werde.
Unter php mit dem Server Apache wird dazu die Servervariable mit $_SERVER[ HTTP_ACCEPT_LANGUAGE ] angesprochen. Der in dieser Variable übergebene Wert kann anschließend in einer Funktion ausgewertete werden. Je nach Auswertung kann anschließend ein Session gesetzt oder eine Header zu einer Page gesetzt werden.

Hinweis:
Die Sprachzuordnung kann dabei recht genau erfolgen. So werden z.B. für die Deutsche Sprache verschiedenen Werte angeboten, je nachdem in welchem Teil des Deutschsprachigen Raums man sich befindet.

de Deutsch
de-de Deutsch / Deutschland
de-li Deutsch / Lichtenstein
de-lu Deutsch / Luxemburg
de-at Deutsch / Österreich
de-ch Deutsch / Schweiz

Gleiches ist für den Englischen Sprachraum sowie auch für einige Andere.

Zu ermitteln sind diese Werte jeweils über einen Web-Browser in der jeweiligen Einstellung.
Bei FireFox unter "Einstellungen ~ Erweitert ~ Sprachen"
Bei IE unter "Extras ~ Internetoptionen ~ Allgemein ~ Sprachen"

Bei der dynamischen Programmierung sollte immer eine Spracherkennung mit dabei sein.
Das Prinzip baut auf eine Datenbank, in der die unterschiedlichen Sprachen gespeichert sind.
Im Einzelnen bedeutet dieses, dass für jeden Textstring ein entsprechender Wert in eine DB hinterlegt ist. Natürlich für jede Sprache einzeln. Was anfangs recht kompliziert klingt, erweist sich meist in der Realität als eine sehr komfortable Lösung.

Vorteile:

  • sehr komfortabel in der Erweiterung
  • funktioniert auch bei Mehrbenutzersystemen
  • es genügt eine Domain
  • beliebig erweiterbar

Nachteile:

  • es wird eine DB benötigt (MySQL macht sich da sehr gut)
  • Anfangs höherer Programmieraufwand (was sich schnell relativieren wird)
  • Es kann nur sehr bedingt auf Schriftlaufweiten eingegangen werden, daher muss zuvor ein sauberes Layout erstellt werden, damit spätere unangenehme Überraschungen vermieden werden

Funktionsprinzip:
Die Spracherkennung funktioniert genau so, wie unter 1.2.2 bereits erläutert. Mit dem Unterschied, dass nun ein Session gesetzt wird, was die Sprachen eindeutig identifiziert. Über dieses Sessen wird die gesamte Sprachsteuerung betrieben. Ist das Sessen gesetzt und eine andere Page wird aufgerufen, so wird anhand dieser Variablen aus der DB die entsprechende Sprache ausgelesen und auf der Web-Site ausgegebene.

Es muss also bei jeder Seite eine DB-Abfrage erfolgen, in der die jeweiligen Text-String in den jeweiligen Sprachen abgefragt werden.