Sven Rautenberg: mod_rewrite und multiviews

Beitrag lesen

Moin!

Ich würde momentan wohl eher auf den Komfort einer Sprachumschaltung verzichten oder etwas per JavaScript anbieten, wenn es keine Lösung gibt die extra angeforderte Sprachversionen mit gleicher URI auszuliefern.

Auch wenn ich noch nicht so ganz verstanden habe, was du genau willst, aber allein diese Aussage "extra angeforderte Sprachversion mit gleicher URI" kann doch schon nicht funktionieren.

Ich überlege mal: Ein Request ist ein Request ist ein Request. Was vorher und hinterher war, ist (außer du benutzt einen Session-Mechanismus) irrelevant.

Und nun ruft der Browser also index.html ab. Und der Server checkt die Optionen:

1. index.html existiert - dann raus damit.
2. index.html existiert nicht, aber Sprachversionen index.de.html und index.en.html. Dann wird die vom Browser gesendete Sprachpräferenz geprüft, bei Gleichstand die im Server konfigurierte, und im Zweifel wird eine Entscheidungsseite gesendet - ansonsten unter der URL index.html die jeweilige Sprache ausgeliefert.

Da dieser Mechanismus automatisch abläuft und auf Informationen (Sprachpräferenz) basiert, die der Benutzer nicht unbedingt ändern kann, passiert es eben, dass ein Benutzer mit einer für ihn ungeeigneten Sprachversion dasitzt. Wenn man aber die Sprachversion wechseln will, muß das dem Server in irgendeiner Art und Weise mitgeteilt werden.

Möglichkeit 1: Die Sprachpräferenz ändern. Geht aber nicht immer.
Möglichkeit 2: Die URL ändern. Das widerspricht deiner Forderung "gleiche URL".
Möglichkeit 3: Man kann auch ein Cookie setzen, in dem die Sprache steht - klar. Oder eine Session starten und sich die Wahl darin merken. Das sind aber Techniken, die nicht immer funktionieren. Die Änderung der URL funktioniert immer.

Es hängt bei Mehrsprachigkeit natürlich davon ab, wie umfangreich sie ausgeführt werden soll. Ich habe schon mehrere Konzern-Websites erstellt, bei denen grundsätzlich durchgehend alle Seiten mehrsprachig und identisch vorliegen sollten, und dafür die hier schon häufiger beschriebene Variante gewählt, jede Sprache in einen eigenen Verzeichnisbaum zu packen, der identisch aufgebaut ist.

Wenn es bei dir nur um eine einzige oder wenige Seiten geht, dann wäre die von dir angedachte Variante mit Multiviews sicherlich einfacher zu realisieren, aber die explizite Sprachwahl sollte dann zwingend über die URL geschehen (und angemerkt sei, dass die Sprache nicht am Ende des Dateinamens stehen muß).

Nur alles, automatische Wahl, manuelle Wahl und einheitliche URL - das kriegst du nicht zusammen.

- Sven Rautenberg

--
"Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
(fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)