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.
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:
Nachteile:
Beispiel für den 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:
Nachteile:
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:
Nachteile:
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:
Nachteile:
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.