Catalog mehrsprachig mit Platzhaltern

Wer den Contao Catalog in einem mehrsprachigen System einsetzen möchte, kommt recht schnell zu dem Punkt, an dem er an seine Grenzen stößt und feststellt, dass das alles so einfach nicht ist. Insbesondere dann, wenn es aus verschiedenen Gründen nicht machbar ist, pro Sprache einen Katalog zu erstellen.

Die Erweiterung Platzhalter kann in Kombination mit dem “iflng” Insert Tag Abhilfe schaffen, lässt aber einige Fragen offen.

Das Ausgangsszenario ist also eine mehrsprachige Contao Website mit einem (oder mehreren) Katalogen, die jedoch so umfangreich sind, dass es schlicht unmöglich ist, sie mehrsprachig zu pflegen.

Helfen kann man sich mit einem Contao Bordmittel, dem Insert Tag iflng sowie der Drittanbieter Erweiterung .

Und so gehts:

Der Katalog nutzt ein vorab definiertes Feld “Country”. Die Bezeichnung für dieses Feld soll in verschiedenen Sprachen angezeigt werden, als country in der englischen Variante, Land in der deutschen, und so weiter.

Man legt in der Platzhalter Erweiterung also ein eigenes Insert-Tag “country” an und definiert dort das Handling für die verschiedenen Sprachen über das Insert-Tag “iflng” - Achtung: Editor deaktivieren.

Dieses Insert-Tag wird fürs Frontend definiert.

Dann wechselt man zurück in den Catalog und gibt dort statt der Bezeichnung “country” den Platzhalter in der Form {{custom::country}} ein:

Das ist der Zeitpunkt, das Ganze im Frontend zu testen - es funktioniert wunderbar.

Leider kommt der Moment, an dem es die Kröte zu schlucken gilt: Beim Blick ins Backend fällt auf, dass nun überall das neue Insert-Tag auftaucht. Es ist schließlich lediglich fürs Frontend definiert. Das kann dann  in einem Datensatz des Katalogs beispielweise so aussehen - wie ich finde, nicht sonderlich schön

Abhilfe schafft man durch einen weiteren, gleichnamigen Platzhalter, der das {{custom::country}} ganz pragmatisch englischsprachig wieder zu “Country” macht (in diesem Fall darf es mir pragmatisch egal sein, in welcher Sprache das Backend bedient wird)  und der diesmal fürs Backend definiert wird . Damit wird man zwar das Insert-Tag nicht wirklich los, aber die Anzeige wird etwas deutlicher.

Leider wird man die Platzhalter Anweisung nicht los (was auch so gewollt ist) - zumindest nicht, ohne am Code herumzuschrauben (was, wie wir wissen, keine Lösung ist) und nachher für totale Verwirrung zu sorgen. Die Kröte bleibt also, wenn sie auch nicht mehr ganz so im Hals steckt…

Achtung: die Übersetzungen retten einen nicht vor den Modulen

So schön es auch klappt mit den Übersetzungen: die Module wie Catalog Filter oder Catalog List muss man in nächsten Schritt zwangsläufig pro Sprache anlegen: Die Übersetzung klappt zwar, nur der Redirect muss an die Seitenstruktur der Sprache angepasst werden.

Wie man diesen etwas mühsamen Schritt mit nur einem Theme schnell hinbekommt, ist im Beitrag über Mehrsprachigkeit beschrieben.

Fazit

Der Einsatz von iflng und Platzhalter Erweiterung ist eine Variante, um den Katalog mehrsprachig zu führen, ohne dabei mehrere Kataloge einsetzen zu müssen. Es braucht allerdings die Akzeptanz der durchaus gewöhnungsbedürftigen Anzeige eigener Platzhalter im Backend (die übrigens nicht Catalog-abhängig ist) durch die Redakteure.

 

4 Antworten zum Beitrag “Catalog mehrsprachig mit Platzhaltern”

  1. am 27 Jan 11 um 07:59 meint

    Christian Münster

    Schön wäre es doch, wenn man zunächst den Catalog-Eintrag in der Fallback-Sprache erstellen würde und dann die Möglichkeit hätte, für die verschiedenen Sprachen die entsprechenden Einträge anzuhängen. Ich hab auch schon eine Idee für eine Erweiterung, aber noch nicht umgesetzt, da ich mir nicht sicher bin, ob man das nicht fast mit Bordmitteln erreichen kann.

  2. am 27 Jan 11 um 08:06 meint

    Anne-Kathrin

    Was meinst du mit “anhängen”?

    In diesem Fall ging es darum, - vielleicht sollte ich das noch ergänzen, zum einem die Bezeichner für Felder mehrsprachig zur Verfügung zu haben, zum anderen auch die entsprechenden Auswahlfelder, also im einfachsten Fall beispielsweise
    Anrede/Titel und Herr-Frau/Mr.-Mrs.
    Es ging nicht darum, einen mehrsprachigen Katalog mit im Prinzip redundanten Daten zu erstellen.

  3. am 27 Jan 11 um 08:45 meint

    Christian Münster

    ok… stimmt, hab ich falsch verstanden,…
    hmm,… warum lassen sich nicht übers Backend Languagedateien für die Bezeichner generieren…. das wäre doch ziemlich elegant. Man definiert die Felder mit einem “alias” als Feldbezeichner. Und dann müsste es im Backend eine Tabelle geben, in der man je Katalog die Übersetzungen eingeben könnte.

  4. am 27 Jan 11 um 08:48 meint

    Anne-Kathrin

    Die Sache gefällt mir besser… ;-)
    Ich muss allerdings erstmal darüber nachdenken, Weiteres folgt (was aber ein bisschen dauern kann).

Auch was dazu sagen?