Search the FirstSpirit Knowledge Base
Hallo,
Wir haben bei uns eine FS_LIST vom Typ Database.
Die Ausgabe ist wie folgt:
$CMS_FOR(item, st_list)$
$CMS_VALUE(item)$
$CMS_END_FOR$
In der Tabellenvorlagen soll dann die Generierungssprache geändert werden.
$CMS_SET(#global.language, #global.project.masterLanguage)$
$CMS_VALUE(tt_title)$
Wenn die Sprache nicht geändert wird, wird die Ausgabe korrekt in der Mastersprache gemacht.
Wenn die Sprache jedoch ändert und der Inhalt nicht gepflegt ist, wird nichts mehr angezeigt.
#this ist IdentifiableIdProvidingFormData
Ich möchte jedoch mit
tt_title
und nicht mit
#this.get(#project.project.masterLanguage, "tt_title").get()
darauf zugreiffen.
Gibt es eine Möglichkeit die Daten nach dem ändern der Sprache erneut zu laden?
Hallo,
ich kann noch nicht ganz nachvollziehen, wieso überhaupt die Generierungssprache manuell verändert werden soll bzw. warum zwingend die Masterlanguage verwendet werden soll. Es wäre hilfreich, wenn der Anwenungsfall noch etwas genauer beschrieben wird.
Viele Grüße
Tim
Es geht dabei um ein Sprachfallback.
Im wirklichen Template wird überprüft ob der Datensatz übersetzt ist oder nicht.
Hallo,
wenn fehlende Übersetzungen z.B. immer durch die Mastersprache ersetzt werden sollen, kann dies durch eine Projekteinstellung automatisiert werden. Dazu einfach in den Projekteinstellungen im Bereich "Ersetzungen" die Option "Sprachersatz" auf "Mastersprache verwenden" setzen.
Ich hoffe das hilft weiter!
Viele Grüße
Tim
Diese Option haben wir schon gesetzt.
Soweit ich weiss hilft die aber für Datenquellen Einträge nicht viel. (Stand 4.2)
Die FS_LIST ist ja vom Typ Database.
Wenn ich die Sprache ändere, bevor ich mit CMS_VALUE darauf zugreiffe, kommt auch die MasterSprache.
$CMS_FOR(item, st_list)$
$CMS_SET(#global.language, #global.project.masterLanguage)$
$CMS_VALUE(item)$
$CMS_END_FOR$
Dass die Option für Datenquellen nicht greift stimmt natürlich, mein Fehler.
Vielleicht ist dieses Posting interessant: https://community.e-spirit.com/message/12145
Ich glaube ohne etwas zusätzlichen Code wird es nicht funktionieren. Ich würde den im Posting beschriebenen Weg wählen und in der Tabellenvorlage
$CMS_VALUE(#row.SPALTENNAME_SPRACHKÜRZEL)$
verwenden, wenn der Datensatz bzw. die Spalte in der aktuellen Sprache nicht übersetzt ist. Als Sprachkürzel kannst du dann entweder das Kürzel der Masterlanguage hart codieren oder den vollständigen Spaltennamen zunächst zusammenbauen. Etwa so:
$CMS_SET(set_masterValue, "<SPALTENNAME>_" + #global.project.masterLanguage.abbreviation)$
$CMS_VALUE(#row.getValue(set_masterValue))$
Hallo,
benötigst Du noch weitere Hilfe oder haben Dir Tims Antworten bereits geholfen?
In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere
Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung
gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.
Viele Grüße
Michaela