Mehrsprachige Webseiten mit browserbasierter Sprachauswahl
Der an der Ruhr-Universität eingesetzte Apache Web-Server unterstützt "Content Negotiation" mit MultiViews.
Übersetzen lässt sich "Negotiation" mit "Verhandlung".
Web-Client und -Server verhandeln demnach darüber, welche Variante einer Ressource
ausgewählt werden soll, damit eine möglichst gute Darstellung resultiert.
Speziell auf Sprachen angewandt, heißt dies, dass die Benutzer die von ihnen
bevorzugten Sprachen im Browser einstellen, der Browser teilt dem Web-Server bei Anfragen dann mit, welche Sprachen bevorzugt werden. Beim Mozilla/Netscape Browser finden Sie diese Einstellung unter dem Menüpunkt
Einstellungen > Navigator > Sprachen, beim Internet Explorer unter Extras > Internetoptionen > Sprachen. Die Sprachpriorität beim Mozilla Firefox ab Version 0.9 ist unter Tools > Options im Bereich General zu bestimmen. Bei der Mozilla Firefox Version 0.8 muss die Datei user.js im Profil-Ordner erstellt werden. Weitere Informationen hierzu finden Sie auf der Mozilla Firefox Helpsite.
| Sprachauswahl bei den Browsern Netscape, Internet Explorer und Mozilla Firefox
Bitte klicken Sie auf die Abbildung um eine vergrösserte Darstellung zu erhalten.
|
MultiViews in Kürze
Wie mit jeder anderen Technik auch, müssen Inhalte verschiedener Sprachen in verschiedenen Dateien
vorgehalten werden, eine Datei für jede Sprache. Der Trick ist nun, daß Sprachenbezeichner nicht in
Dateinamen oder Verzeichnisnamen eingebettet werden, sondern stattdessen als zusätzliche Erweiterung
an die Namen der Dateien angehängt werden, die die Webseiten enthalten.
Der große Unterschied zu den anderen Techniken ist, das nicht der Browser zwischen Dateien mit
verschiedenen Sprachinhalten unterscheidet, indem er Verweise in Ihrem HTML-Quellkode auswertet.
Stattdessen prüft der Server anhand der zusätzlichen Erweiterung des Dateinamens, um verschiedene
Sprachen zu unterscheiden. Darüber hinaus ist diese Methode total transparent für den Webbrowser, da
die Sprachenbezeichner gar nicht erst an den Browser gesendet werden. Dies resultiert in einem
angenehmen Nebeneffekt: Sie können innerhalb Ihrer Webseiten Verweise erstellen, ohne in diesen
Verweisen die Sprachenbezeichner nennen zu müssen. Damit sehen die Verweise für jede Sprache gleich
aus, dies vermeidet natürlich Fehler bei der Übersetzung.
Das oben gennante hört sich zunächst an, als könne man einfach jede Erweiterung an Dateinamen
anhängen, aber das stimmt nicht - Apache unterstützt ausschliesslich bekannte oder zusätzlich
konfigurierte Mime-Typen oder Sprachenbezeichner.
Im nun folgenden Beispiel verwenden wir en als den Bezeichner für die englische Sprache und de als
Bezeichner für die deutsche Sprache, wie sie im RFC 1766 definiert sind. Weitere Sprachenbezeichner
können Sie im Auswahldialog für Sprachen in den Einstellungen Ihres Webbrowsers einsehen.
- index.html.en (enthält die Version in Englisch)
- index.html.de (enthält die Version in Deutsch)
- index.html.html (enthält die Version in Englisch als Standardsprache)
- wenn Sie nun auf diese Seite verweisen möchten, geben Sie nur index.html an - ohne den Sprachbezeichner! Apache wird die Auswahl der Sprache für Sie vornehmen, und zwar entsprechend der Liste der bevorzugten Sprachen, wie sie in den Einstellungen des Browsers definiert wurden.
- index.html darf nicht existieren, sonst werden alle Varianten index.html.* einfach ingoriert!
Diese wird von Apache zurückgeliefert, wenn der Benutzer weder die englische noch die deutsche Sprache als bevorzugt eingestellt hat, also keine der unterstützten Sprachen, aber mindestens eine andere Sprache - hier verweigert Apache leider eine sinnvolle Zusammenarbeit. Um nun eine Datei mit einer Standardvariante anbieten zu können, dürfen wir, wie bereits erwähnt, nicht den Namen index.html verwenden, aber aus offensichtlichen Gründen auch keinen anderen Sprachenbezeichner als zusätzliche Erweiterung des Dateinamens anhängen. Stattdessen dürfen wir hierfür nur eine gültige MIME-Typenerweiterungen verwenden, die den Dateiinhalt richtig beschreibt, und logischerweise kommt in diesem Beispiel nur erneut die Erweiterung .html in Frage.
MultiViews per .admopts aktivieren:
Um Multiviews für unser Beispiel zu aktivieren, ist folgender Eintrag innerhalb einer .admopts-Datei vorzunehmen:
| Options MultiViews |



