Thomas: Zweisprachige Websites mit Apache Multiviews

Hallo,
ich baue gerade eine Website mit zweisprachigem Inhalt (deutsch+englisch) auf und möchte gerne die Apache-Funktion Multiviews nutzen. Meine .htaccess sieht so aus:
Options +MultiViews
AddLanguage de .de
AddLanguage en .en
LanguagePriority en de
DefaultLanguage en

Mein Ziel ist, dass alle User, die "deutsch" in ihrem Browser als Sprache eingestellt haben, die *.html.de kriegen und alle anderen die *.html.en

Das klappt auch fast. Ausnahme: wenn ich andere Sprachen als de und en (also z.B. fr) im Browser auswähle, dann bekomme ich beim Anfordern des files *.html die Meldung 406.

Wenn ich jedes Dokument dreimal ablege (file.html.de, file.html.en und file.html.html) gibt es keine Probleme. Das finde ich aber lästig, da ich bei meinem keine symbolischen Links machen kann (nur ftp-Zugang, kein Telnet) und ich nicht soviel Plattenplastz vergeuden will.

Hat jemand ähnliche Erfahrungen gemacht und kann mir helfen?
Danke,
Thomas

  1. Hallo Thomas,

    Wenn ich jedes Dokument dreimal ablege (file.html.de, file.html.en und file.html.html) gibt es keine Probleme. [...]

    Hat jemand ähnliche Erfahrungen gemacht und kann mir helfen?

    Ich hab damit zwar keinerlei Erfahrung, aber es müsste AFAIK folgendermaßen lauten:

    • file.<sprache>.html    // für Sprache mit Sprachcode <sprache>
    • file.html              // für andere Sprachen

    In deinem Falle also:

    • file.fr.html
    • file.html

    en ist ja deine Standardsprache und fällt unter "andere Sprachen".

    Bye,
    Peter

    1. Moin!

      Ich hab damit zwar keinerlei Erfahrung, aber es müsste AFAIK folgendermaßen lauten:

      • file.<sprache>.html    // für Sprache mit Sprachcode <sprache>
      • file.html              // für andere Sprachen

      Nein. Wenn die URL file.html angefordert wird, darf es exakt diese Datei _nicht_ geben, damit MultiViews aktiv werden kann. Denn der Mechanismus basiert ja darauf, dass zu einer URL mehrere Dateien in Frage kommen.

      en ist ja deine Standardsprache und fällt unter "andere Sprachen".

      Wenn, dann würde ich auf file.en.html verzichten und file.html.html benutzen.

      Genaugenommen würde ich sowas aber nur exakt einmal benutzen: Bei der Einstiegsseite.

      Denn es ist mit diesem Mechanismus und ohne serverseitige Dynamik schon sehr mühsam, wenn man als deutscher Besucher, aber mit falsch eingestelltem Browser (vielleicht im Ausland oder bei einem Freund) ständig die englische Version vorgesetzt bekommt und jede Seite extra nochmal auf deutsch laden muß.

      Besser: Die Startseite mit MultiViews auswählen lassen und dann je nach Sprache in zwei Verzeichnisse /de und /en verzweigen.

      - 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>)
      1. Danke für eure Antworten.
        Sven hat Recht, nur *.html geht nicht.

        Wenn, dann würde ich auf file.en.html verzichten und file.html.html benutzen.

        Das ändert leider auch nix, bei Spracheinstellung frz (oder was anderes, was nicht en und nicht de ist) kommt nach wie vor Error 406 (zumindest im IE6).

        Genaugenommen würde ich sowas aber nur exakt einmal benutzen: Bei der Einstiegsseite.

        Besser: Die Startseite mit MultiViews auswählen lassen und dann je nach Sprache in zwei Verzeichnisse /de und /en verzweigen.

        An sich ein guter Gedanke. Da ich aber eine bestehende deutsche Seite habe, die ich (nach und nach) ins englische übersetze, hätte ich mit MultiViews weniger Arbeit, weil alle Verzeichnisse und Links gleich bleiben können.

        Grüße,
        Thomas