TWidmayer
Elite Observer

mehrere Sprachen der Projekteinstellungen in Mediendatei ausgeben

Hallo zusammen,

folgendes Problem:

Ich habe in den Projekteinstellungen mehrsprachige Eingabekomponenten.

Diese will ich in einer Mediendatei (auch einsprachig) in den verschiedenen Sprachen ausgeben.

Dazu bin ich über die Projektsprachen iteriert und habe immer die Sprache der Schleife gleich #global.language gesetzt.

$CMS_SET(global_lang_temp,#global.language)$

$CMS_FOR(lang, #global.project.languages)$

          $CMS_SET(#global.language, lang)$

          $CMS_IF(!ps_cookieText.isEmpty)$

                    $CMS_VALUE(ps_cookieText)$

          $CMS_END_IF$

 

          $CMS_VALUE(#global.language)$

$CMS_END_FOR$

$CMS_SET(#global.language,global_lang_temp)$

In der Generierung ist DE und EN als Sprache aktiv, es wird jedoch immer nur der DE-Text ausgegeben?

#global.language gibt mir korrekt alle Sprachen aus.

Kann mir jemand erklären warum? Bzw. was ich falsch gemacht habe?

Es müsste doch möglich sein, die Eingabekomonente in allen Sprachen auszulesen.

FS: 5.2.212.71463

Grüße

Tobias

0 Kudos
3 Replies
pavone
I'm new here

Hallo Tobias,

ich bin mir nicht sicher, ob #global.language so einfach überschrieben werden kann und das auch im $CMS_VALUE$ dann greift.

Du könntest ein einfaches BeanShell-Skript schreiben, dass dir die Werte für die verschiedenen Sprachen ausliest.

Viele Grüße

Tim

0 Kudos
mbergmann
Crownpeak employee

Hallo Tobias,

ein Umsetzen der Sprache funktioniert meines Wissens nur, bevor die entsprechenden Variablen in den Kontext geschrieben werden. Bei ProjectSettings passiert das aber direkt zu Beginn der Generierung. D.h. Deine Umschaltung kommt "zu spät", die Variable ps_cookieText hat bereits einen Wert, der nicht bei jedem Zugriff neu ermittelt wird (was auch sinnvoll ist).

Hier müsstest Du tatsächlich den etwas längeren Weg über das "Origina-FormData" gehen, in etwa so:

$CMS_FOR(for_lang,#global.project.languages)$

          $CMS_SET(set_text,

                    #global.project.userService

                    .getStore(class("de.espirit.firstspirit.access.store.Store$Type").GLOBALSTORE,#global.release)

                    .projectProperties

                    .formData.get(for_lang,"ps_cookieText").get()

          )$

          $CMS_IF(!set_text.isEmpty)$

                    $CMS_VALUE(set_text)$

          $CMS_END_IF$

$CMS_END_FOR$

Viele Grüße

Michael

0 Kudos
pavone
I'm new here

Hallo Tobias,

benötigst Du noch weitere Hilfe oder haben Dir die bisherigen 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

Tim

0 Kudos