Ihre Meinung zu dieser Seite?
Deutsch Deutsch English English

Wenn man internationales Publikum auf seinen Seiten erwartet, wird man eventuell auch gleiche Inhalte in verschiedenen Sprachen anbieten. Dieser Artikel erklärt in 5 Schritten, wie ich bei dieser Website zu hohem Komfort kam, bei der der Benutzer möglichst oft die Artikel in seiner bevorzugten Sprache präsentiert bekommt. (OK, es gibt nur deutsch und englich hier.)

Die hier vorgestellte Technik ist noch im alpha-Stadium, wenn etwas nicht funktioniert, bitte ich also um eine Benachrichtigung.

Schritt 1 - Sprache jeder Seite definieren

Wenn Website Baker nicht weiß, welche Sprache eine Seite hat, kann es auch nicht bei der Zuweisung behilflich sein. Aus diesem Grunde gibt es im Backend zu jeder Seite in den Einstellungen ein Feld Sprache, welches korrekt ausgefüllt werden muss.

Schritt 2 - Links zu anderen Sprachen anbieten

Die einfachste Methode ist, im Template für das Frontend feste Links zu den Startseiten der jeweiligen Sprachen zu integrieren. Der Besucher hat damit die Möglichkeit, in eine andere Sprache zu wechseln. Das ist zwar noch nicht besonders komfortabel, denn wenn er auf der Homepage der anderen Sprache landet, muss er sich wieder bis zu dem jeweiligen Menüpunkt hangeln, aber es lässt sich mit einer Standardinstallation von WB 2.7 umsetzen. Ich glaube, es werden sogar Templates zum Download angeboten, die das können.

Schritt 3 - Links zur Seite mit gleichem Inhalt in anderen Sprachen anbieten

Diese Lösung ist natürlich wesentlich komfortabler. Man kann das auch auf statischen Seiten machen, die gar kein CMS verwenden. Je größer die Webpräsenz wird, desto mehr Arbeit macht aber das Pflegen der Menüs von Hand.

Website Baker bietet so eine Funktionalität in Version 2.7 noch nicht an. Man kann sie sich aber nachrüsten. Ich habe dazu das Code-Schnipsel Easy Multilanguage Link geschrieben. Allerdings wird dazu etwas Mut benötigt, denn man muss kleine Veränderungen an Kernel-Dateien durchführen. Diese sind notwendig, um ein zusätzliches Feld für die Seiteneinstellungen einzufügen. Ich habe dieses Feld Page Code genannt, in der deutschen Version wird das momentan noch etwas unglücklich als Seite Code angezeigt. Für alle Seiten mit dem gleichen Inhalt gibt man nun nicht nur die richtige Sprache, sondern auch den gleichen Seitencode (einen beliebigen String) ein. Nun kann man eine Codezeile in das Template einfügen und erhält dafür immer Links zu den anderssprachigen Seiten mit gleichem Inhalt.

Den Besucher freut es sicher.

Schritt 4 - Startseite in der bevorzugten Sprache des Benutzers anbieten

Auch diese Funktionalität kann man selbst auf statischen Seiten anbieten. Ich habe das schon vor 10 Jahren mit einem kleinen Perl-Script getan. Der Benutzer kann seine bevorzugte Sprache im Browser setzen, die kann man auswerten und dementsprechend die Seite in der bevorzugten Sprache ausliefern. Wenn keine Startseite in einer der bevorzugten Sprachen vorhanden ist, wird einfach die Seite mit der Standardsprache ausgeliefert.

Standardmäßig ist eine solche Funktionalität nicht in Website Baker integriert. Wenn jedoch Easy Multilanguage Link bereits installiert ist, muss man nur noch etwas Code einfügen und entweder die httpd.conf ein wenig umkonfigurieren oder eine Kernel-Datei von Website Baker anpassen, dann klappt es mit der automatischen Sprachauswahl der Startseite. Website Baker verwendet sehr häufig Browser-Redirects, meine Lösung geht diesen Umweg nicht, sondern liefert einfach die passendste Sprache aus.

Schritt 5 - Luxusvariante: alle Links, die von extern kommen, in der bevorzugten Sprache des Benutzers ausliefern

Wenn ein Besucher über einen externen Link kommt, der zu einer meiner Seiten zeigt, die es in mehreren Sprachen gibt, wäre es doch gut für ihn, wenn die Seite gleich in der bevorzugten Sprache ausgeliefert wird.

Also der Link zeigt beispielsweise auf die englische Version, der Browser sagt aber, daß er deutsch bevorzugt, na warum soll man dann nicht gleich die deutsche Version schicken? (Microsoft macht das ja mit den KB-Artikeln auch so, nur landet man dort dann meist auf automatisch in katastrophaler Qualität übersetzten Seiten.)
Das ganze Spiel sollte man natürlich nur veranstalten, wenn der Besucher von extern kommt, sonst könnte er ja in WB nicht mehr die Sprache wechseln. Und natürlich ohne Browser-Redirect, was ja in solchen Fällen die blanke Ressourcenverschwendng ist (manchmal aber durchaus seine Berechtigung hat).

Zu diesem Verhalten lässt sich Website Baker nur durch die Änderung einiger Kernel-Dateien bewegen.

Fazit

Ich habe das oben besprochene für diese Site http://wbdemo.heysoft.de/ implementiert. Da im Forum von der Mehrheit der Benutzer eigenmächtige Kernel-Änderungen abgelehnt werden (und da der Code noch nicht ausreichend getestet ist), verzichte ich vorläufig auf die Veröffentlichung des Quellcodes.

Leider hat sich das Entwicklerteam dagegen entschieden, in die Version 2.8 von Website Baker mehrsprachige Unterstützung einzubauen. Sie müssen also auf Version 2.9 warten (oder Easy Multilanguage Link samt den mitgelieferten Patches installieren).