kraemer
I'm new here

Sprache ersetzen in Datenquellen

Jump to solution

Hallo,

wir verwenden Datenquellen mit mehrsprachig angelegten Textfeldern. Mir ist aufgefallen, dass z.B. bei der Ausgabe solcher Felder in Deutsch auch null ausgegeben wird, selbst wenn das Feld in Englisch gepflegt ist. Englisch ist unsere Master Language und das Projekt ist so eingestellt, dass fehlende Sprachinhalte mit der Master Language ersetzt werden (Language Substitution: Use Master Language).

Ich vermute, dass in den Datenquellen keine automatische Ersetzung stattfindet, da es dort auch kein Flag gibt um Inhalte als übersetzt zu markieren. Ist das korrekt?

Aktuell habe ich manuell einen Check bei der Ausgabe implementiert und nehme dann Englisch falls Deutsch leer ist. Ich suche nach einem schlaueren Weg als dies bei jeder Ausgabe aufs neue einbauen zu müssen.

Danke + Gruss

Michael

0 Kudos
1 Solution

Accepted Solutions

Hallo Michael,

das entspricht dem erwarteten Verhalten. Die Sprachersatzregelung greift nur für Seiten und deren Absätze. Für Datensätze entspricht deine Variante der "best pratice". Wenn man das öfter braucht, kann man die IF-Logik auch in eine Formatvorlage auslagern und der dann nur das Feld ohne Sprachkürzel übergeben. In der Formatvorlage wird dann geprüft und ggf. der Wert der Fallbacksprache ausgegeben. Dann kann man die Sprachfallbacklogik für Datensätze an einer zentralen Stelle pflegen.

Viele Grüße

Christoph

View solution in original post

0 Kudos
3 Replies
feddersen
Community Manager

Hallo Michael,

kannst du mal den Code posten, den du verwendest?

$CMS_VALUE(NAME_DER_EINGABEKOMPONENTE)$

$CMS_VALUE(#row.SPALTENNAME)$

$CMS_VALUE(#row.SPALTENNAME_SPRACHKÜRZEL)$

0 Kudos

Ich versuche in einem Format-Template, dass in einer Content-Projektion verwendet wird, auf den aktuellen Datensatz zuzugreifen. Und zwar so:

$CMS_SET(myIndex, #global.pageParams.index)$

$CMS_SET(myProduct, #global.multiPageParams.get(myIndex))$

  $CMS_IF(!myProduct.category.name.empty)$

  $CMS_SET(ft_p_cat, ft_p_cat +"/"+ myProduct.category.name)$

  <meta name="p_category" content="$CMS_VALUE(myProduct.category.name)$" />

  $CMS_ELSIF(!myProduct.category.name_EN.empty)$

                              $CMS_SET(ft_p_cat, ft_p_cat +"/"+ myProduct.category.name_EN)$

                              <meta name="p_category" content="$CMS_VALUE(myProduct.category.name_EN)$" />

  $CMS_END_IF$

so funktioniert es. Ich hatte allerdings erwartet, dass myProduct.category.name automatisch den englischen Namen liefert wenn der aktuelle (z.B. deutsch) leer ist.

0 Kudos

Hallo Michael,

das entspricht dem erwarteten Verhalten. Die Sprachersatzregelung greift nur für Seiten und deren Absätze. Für Datensätze entspricht deine Variante der "best pratice". Wenn man das öfter braucht, kann man die IF-Logik auch in eine Formatvorlage auslagern und der dann nur das Feld ohne Sprachkürzel übergeben. In der Formatvorlage wird dann geprüft und ggf. der Wert der Fallbacksprache ausgegeben. Dann kann man die Sprachfallbacklogik für Datensätze an einer zentralen Stelle pflegen.

Viele Grüße

Christoph

0 Kudos