Multilingual Seite umsetzen?

Marcs

Legendäres Mitglied
Ich muss eine Seite in mehreren Sprachen erstellen, welches CMS ist dafür am besten geeignet?
Wie würdet ihr das Ganze umsetzen für die beste Usability?

Es gibt ja verschiedene Möglichkeiten, mir fehlen hier aber die Erfahrungswerte.
--> Die Möglichkeit pro Land eine separate Seite zu generieren ist administrativ eher nicht zu bewältigen.

Freue mich über eure Meinung
smile.gif
.
 
Die Lösung, die ich persönlich für so ziemlich ideal halte, ist in Server-Daten sehr tiefliegend implementiert.


Man hat Tabellen mit Spalten: Termin, Ort, Referent, Veranstaltungstitel.

Termin / Ort / Referent sind sprachunabhängig, Veranstaltungstitel ist sprachabhängig.

Zur Spalte Veranstaltungstitel können zusätzliche Länderspalten erstellt werden (en, fr, es usw.).
Intern werden diese als zusätzliche Tabellen (mit dem Primärschlüssel der Haupttabelle als Fremdschlüssel + PK) definiert, die bei der Ausgabe per LeftJoin mit der Grundtabelle verknüpft werden.

Bei allen Lesezugriffen (auch über einfach zu generierende Abfragen) prüft das System, ob solche Länderverzweigungen existieren, hängt LeftJoin und entsprechende CoalEsce-Klauseln an, falls die Sprache paßt:

Wenn Sprache en / en-GB usw und wenn es eine en-Spalte gibt, dann CoalEsce(Aenglisch.Veranstaltungstitel, A.Veranstaltungstitel).

Bei der Dateneingabe läßt sich das auch analog machen, daß Nutzer auf en umschalten, zunächst in der Liste die de-Einträge sehen, beim Klick ist das en-Eingabefeld leer und kann gefüllt werden.

Die Seitenstruktur ist von der Form

www.domain.de/de/
www.domain.de/en/

usw., die beiden obigen Adressen steuern dieselbe Seite an. Seiten lesen den lang-Parameter aus, schicken den bei allen Abfragen mit - die Abfrage liefert nach dem obigen Muster den korrekten Wert für diese Sprache. Ansonsten 'weiß' die Seite gar nicht, in welcher Sprache sie aufgerufen wird


Richtig ekelig wird das natürlich bei verknüpften Tabellen, weil dann die Scrolllisten auch solche LeftJoin-Konstrukte bereitstellen müssen.

Packt man die meisten Daten einer Seite in so strukturierte Tabellen, dann reduziert sich die Bereitstellung einer weiteren Sprache darauf, die entsprechenden Sprachspalten zu ergänzen und die Daten einzugeben.


Andere Lösungen laufen darauf hinaus, praktisch pro Sprache eine eigene Domain (unter /de/, /en/ usw.) zu erstellen. Eine Lösung wie innerhalb der .NET-Rahmenarchitektur, bei der man sprachabhängige Meldungen in eine Textdatei schreibt, genügt für 'flache Texte' (ohne Return), ist aber für Domains eher ungeeignet.

So etwas einmalig manuell bereitzustellen dürfte extrem aufwendig sein.
 
Zurück
Oben