- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sprach-Fallback in Datenquellen
Hallo,
ich habe in meinem Projekt folgende Konstellation:
DATENQUELLE:
headline_DE (String 512)
headline_EN (String 512)
body_DE (FirstSpirit XML)
body_EN (FirstSpirit XML)
FORMULAR:
<CMS_INPUT_TEXT name="cs_headline" hFill="yes" maxInputLength="512" useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="*" label="Headline" description="The title of the content entry."/>
</LANGINFOS>
</CMS_INPUT_TEXT>
<CMS_INPUT_DOM name="cs_body" bold="yes" hFill="yes" italic="yes" rows="10" table="no" useLanguages="yes">
<FORMATS>
<TEMPLATE name="Standard"/>
</FORMATS>
<LANGINFOS>
<LANGINFO lang="*" label="Text" description="The text of the content entry."/>
</LANGINFOS>
</CMS_INPUT_DOM>
HTML-KANAL:
<h1>$CMS_VALUE(#row.headline, default:#row.headline_EN)$</h1>
$CMS_VALUE(#row.body, default:#row.body_EN)$
Damit mรถchte ich erreichen, dass z.B: beim Generieren des DE-Sprachkanals auf EN zugegriffen wird, sollte noch keine รbersetzung vorliegen (Mastersprache EN).
Das funktioniert mit der Headline wunderbar, jedoch nicht mit dem body. Es scheint so, dass man nicht auf den Inhalt eines anders-sprachigen DOM-Elements zugreifen kann. Auch so Dinge "getValue("body_EN").get().get(lang)" und รคhnliches haben nicht zum Erfolg gefรผhrt, sie liefern zwar Objekte zurรผck (de.espirit.firstspirit.client.editorcomponent.EditorWrapper oder de.espirit.firstspirit.access.editor.value.DomElementImpl), allerdings ist da kein Content drin.
Danke schonmal im vorraus fรผr euer Feedback,
Andreas Dada
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Herr Dada,
funktioniert folgendes?
$CMS_SET(actualLanguage,#global.language)$
$CMS_IF(#global.language != #global.project.masterLanguage && !cs_body.isEmpty)$$CMS_VALUE(cs_body)$$CMS_ELSE$$CMS_SET(#global.language,#global.project.masterLanguage)$$CMS_VALUE(cs_body)$$CMS_SET(#global.language,actualLanguage)$$CMS_END_IF$
Also die Generierungssprache gegebenenfalls vor der Ausgabe des CMS_INPUT_DOMs auf die gewรผnschte Sprache (im Beispiel die Mastersprache) wechseln und dann ausgeben. Den Wechsel zurรผck auf die aktuelle Sprache nicht vergessen
Viele Grรผsse aus Dortmund,
Holger Hรถbbel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Herr Dada,
funktioniert folgendes?
$CMS_SET(actualLanguage,#global.language)$
$CMS_IF(#global.language != #global.project.masterLanguage && !cs_body.isEmpty)$$CMS_VALUE(cs_body)$$CMS_ELSE$$CMS_SET(#global.language,#global.project.masterLanguage)$$CMS_VALUE(cs_body)$$CMS_SET(#global.language,actualLanguage)$$CMS_END_IF$
Also die Generierungssprache gegebenenfalls vor der Ausgabe des CMS_INPUT_DOMs auf die gewรผnschte Sprache (im Beispiel die Mastersprache) wechseln und dann ausgeben. Den Wechsel zurรผck auf die aktuelle Sprache nicht vergessen
Viele Grรผsse aus Dortmund,
Holger Hรถbbel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Herr Dada,
mir fรคllt erst jetzt auf, dass Sie ja $CMS_VALUE(#row.body, default:#row.body_EN)$ benutzen.
Da ein DOM normalerweise immer einen Inhalt hat, wird der default nie benutzt.
Wahrscheinlich funktioniert auch
$CMS_IF(!#row.body.isEmpty)$$CMS_VALUE(#row.body)$$CMS_ELSE$$CMS_VALUE(#row.body_EN)$$CMS_END_IF$
oder kurz
$CMS_VALUE(if(!cs_body.isEmpty,cs_body,#row.body_EN))$
Viele Grรผsse aus Dortmund,
Holger Hรถbbel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Herr Hรถbbel,
des Setzten von #global.language hat zum gewรผnschten Effekt gefรผhrt, der zweite Lรถsungsvorschlag funktioniert nicht.
Vielen Dank fรผr die schnelle Hilfe,
Andreas Dada

