Bernhard Lauber: hreflang="xx"

Ich habe auf http://bernhard.lauber.org/index.html ein Dokument, das ich in Deutsch und Englisch anbieten möchte.
Dazu habe ich es in den verschienden Sprachen abgelegt (index.html.en und index.html.de) und der Server liefert mir das Dokument je nach den Einstellungen beim 1. Laden im Browser auch richtig.

Mein Problem ist, dass sobald ich via Link
  <a href="index.html" hreflang="en"><font>English</font></a> version
explizit eine andere Sprachversion aufrufen möchte, der Browser die Angabe nicht berücksichtigt.

Was ist die Lösung mittels hreflang?

Danke für Eure Hilfe
Bernhard Lauber

  1. Mein Problem ist, dass sobald ich via Link
      <a href="index.html" hreflang="en"><font>English</font></a> version
    explizit eine andere Sprachversion aufrufen möchte, der Browser die Angabe nicht berücksichtigt.

    Was ist die Lösung mittels hreflang?

    Garkeine Lösung. Wie du unter </selfhtml/html/verweise/typisierte.htm#sprache_zeichensatz> nachlesen kannst, ist dieses Attribut ein Hinweis für den Browser, den Link eventuell mit der Sprachinformation anzureichern, also beispielsweise eine Flagge zu präsentieren. Für die Kommunikation mit dem Server wird dieses Attribut aber garantiert NICHT verwendet.

    Die Lösung wäre, die englische Seite explizit mit
    <a href="index.html.en"> anzufordern.

    Dadurch hast du dann aber auf der angeforderten Seite wieder das Problem, daß alle weiteren Links ebenfalls mit ".en" enden müssen, wenn du mit einem auf Deutsch eingestellten Browser die englische Startseite zwangsangefordert hast.

    Eine gute Lösung wäre dieses:
    Du hast mehrere Verzeichnisbäume, je einen pro Sprache. Diese benennst du entsprechend dem Landeskürzel, und legst dort alle Seiten der jeweiligen Sprache hinein - ohne jegliche Content-Negotiation, einfach simple ".html".

    Die Startseiten werden wie gehabt dynamisch angefordert. Alle Links der englischen Startseite zeigen in den Verzeichniszweig "/en/...", und der Link auf die deutsche Startseite auf "index.html.de". Auf der deutschen Seite zeigen alle Links in den Verzeichniszweig "/de/...", und der Link zur englischen Startseite auf "index.html.en".

    Um auf einer beliebigen deutschen Seite zur entsprechenden englischen Seite wechseln zu können, müssen die Seiten aller Sprachversionen immer den gleichen Dateinamen haben - also die deutsche FAQ heißt "/de/faq.html", die englische heißt "/en/faq.html". Der Wechsel kann dann z.B. durch einen überall identischen Javascript-Link vollzogen werden, weil in der URL nur das Landeskürzel ausgetauscht werden muß. Ein HTML-Link geht natürlich auch, ist aber reichlich viel Aufwand, wenn das kein serverseitiges Script erledigen kann.

    - Sven Rautenberg