Sven Rautenberg: Content-Negotiation

Beitrag lesen

Moin!

Ja, wenn man es schlecht macht. Nein, wenn man es gut macht.

gut      = content-negotiation plus verlinkung der alternativen?
schlecht = content-negotiation ohne verlinkung der alternativen?

Schlechte Content-Negotiation wäre, wenn man die "preferred language"-Einstellung in seinem Browser umschalten müßte, wenn man eine spezielle Sprachversion haben will.

Mittelmäßige Content-Negotiation wäre, wenn man eine Seite auch explizit in anderen Sprachversionen anfordern könnte, dies aber beim Surfen auf der Site sofort wieder verloren ginge.

Gute Content-Negotiation behält sich die explizite Auswahl des Besuchers, und wählt ansonsten (bzw. vor so einer expliziten Auswahl) gemäß der Einstellung im Browser.

Das, was mit dem Apache-Modul zur Content-Negotiation möglich ist, ist leider bestenfalls mittelmäßig. Das Problem ist, dass man dynamisch generierte Seiten einsetzen müßte, um die irgendwann einmal erfolgte Benutzerauswahl dauerhaft zu berücksichtigen.

Denn die in allen Sprachversionen der Seite enthaltenen Links müssen natürlich zuerst einmal universell sein, also immer auf "seite.html" verlinken - der Server sucht dann dynamisch "seite.de.html" als Datei heraus und liefern diese unter der URL "seite.html" aus, sofern Deutsch als bevorzugte Sprache gewählt wurde.

Wenn man explizit die englische Seite sehen will, muß man einen Link nach "seite.en.html" machen. Aber diese statische Seite hat natürlich außer zu den identischen Seiten in anderen Sprachen auch nur "normale" Links zu anderen Seiten. Ein Link zur "seite2.html" wird also bei deutscher Spracheinstellung wieder zur deutschen Version führen.

Und noch etwas ist problematisch: Welche Sprache verstehen Suchmaschinenspider?

Da es ja nur eine einzige URL für die Seiten gibt, und die Sprache sich nach der Einstellung des Browsers richtet, hat man bei Suchmaschinen ein Problem. Der Spider wird entweder nur die default-Sprache indizieren, weil kein Sprachwunsch übermittelt wird, oder es wird vom Spider beispielsweise nur die englische Version indiziert - und das, wo man soviel Zeit in die ganzen anderen Übersetzungen gesteckt hat. Noch schlimmer dürfte es werden, wenn einzelne Seiten nicht in der gewünschten Sprache existieren. Dann kommt eine Ersatzsprache - und das Durcheinander in der Suchmaschine ist vermutlich dann unübertreffbar.

Und auch Proxyserver haben natürlich ein Problem damit, dass unter einundderselben URL unterschiedliche Inhalte gespeichert werden. Dagegen gibt es natürlich Mittel (denn auch die Problematik, dass eine Seite dynamisch gzip-komprimiert ausgeliefert werden könnte, muß ja berücksichtigt werden), aber es ist nicht unbedingt schön.

Ich bevorzuge deshalb eine relativ simple Methode: Es gibt je Sprache ein Unterverzeichnis, und die Hauptstartseite besteht aus einem Skript, welches die bevorzugte Sprache analysiert und einen passenden Redirect ausgibt. Dann kann man innerhalb der Sprachversion prima verlinken, und auch ein Sprachwechsel ist ohne Serverdynamik problemlos dauerhaft für den Benutzer machbar.

- Sven Rautenberg

--
"Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)