Questions & Answers

SOLVED
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

Type a product name