Search the FirstSpirit Knowledge Base
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
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
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)$
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.
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