Mehrsprachige Webseiten mit autom. Sprachauswahl

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

Sprachauswahl bei den Browsern Netscape, Internet Explorer und 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.

Um die Erklärung zu vereinfachen, gehen wir das Konzept anhand einer einzelnen Datei mit dem Namen index.html durch:

  • 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)
Hinweis:
  • 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!
Der Zweck der ersten beiden Dateien ist offensichtlich, wofür wird aber die dritte Datei benötigt?
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

Bei Fragen zu .admopts-Dateien besuchen Sie bitte unsere FAQ zum Thema Zugriffsbeschränkungen auf zentralen Webservern.