aschael
I'm new here

Generierungssprache in ValueEngineer

Jump to solution

Hallo liebe Experten,

wir haben für unser Projekt eine eigene Eingabekomponente für Daten angelegt, da das Verhalten von CMS_INPUT_DATE im Bezug auf den Umgang mit Zeitzonen für uns nicht optimal war. Sie funktioniert auch schon ganz gut. Es fehlt nur noch ein Detail: Wenn man das Datum per CMS_VALUE ausgibt, sollte möglichst das Default-Datums- und Zeitformat der generierten Locale verwendet werden. Und das auch wenn die Eingabekomponente an sich als sprachunabhängig gekennzeichnet ist.

Komme ich denn innerhalb der Klassen der Eingabekomponente irgendwie an den Generierungskontext oder auf einem anderen weg an die Language/Locale? Ich konnte dazu leider in der Doku nicht schlau werden, daher würde ich mich sehr freuen, wenn jemand behilflich sein könnte.

Viele Grüße und Dankesehr

Anja Schälicke

0 Kudos
1 Solution

Accepted Solutions

Hallo Anja,

der Trick bei CMS_INPUT_DATE ist die interne Implementierung einer Sonderbehandlung von Date Smiley Wink

Im sprachunabhängigen Fall wird vor der Auslieferung des Werts die copy()-Methode der ValueEngineer-Instanz aufgerufen, die zur angefragten (also hier Generierungs-)Sprache gehört. Eventuell hilft das weiter?

Beste Grüße

Stefan

View solution in original post

0 Kudos
4 Replies
StefanSchulz
I'm new here

Hallo,

der ValueEngineer wird für jede Sprache gesondert erstellt. Die Sprache, in der ein Wert angefragt wurde, steht entsprechend über den ValueEngineerContext bereit.

Sollte dies nicht ausreichen, wären mehr Details z. B. über den Wertetyp eventuell hilfreich.

Beste Grüße

Stefan

0 Kudos

Hallo Stefan,

der Wertetyp ist ein Container für ein Datums-Objekt. Die Funktion getLanguage im ValueEngineerContext habe ich auch schon entdeckt und ausprobiert. Die liefert mir bei einer sprachunabhängigen Komponente aber immer nur Deutsch, also die Mastersprache, zurück. Bei CMS_INPUT_DATE funktioniert das aber. Da bekomme ich für ein sprachunabhängiges Feld auf deutschen Seiten 13.12.2017 und auf englischen Dec 13, 2017. Deshalb dachte ich es müsste irgendeinen Trick geben den ich nicht gefunden habe.

So habe ich die Locale bisher abgefragt:

_locale = Locale.getDefault();

if(_context.getLanguage()!= null && _context.getLanguage().getLocale() != null){

_locale = _context.getLanguage().getLocale();

}

Und die habe ich unserem Datums-Container-Objekt mitgegeben.

VG

Anja

0 Kudos

Hallo Anja,

der Trick bei CMS_INPUT_DATE ist die interne Implementierung einer Sonderbehandlung von Date Smiley Wink

Im sprachunabhängigen Fall wird vor der Auslieferung des Werts die copy()-Methode der ValueEngineer-Instanz aufgerufen, die zur angefragten (also hier Generierungs-)Sprache gehört. Eventuell hilft das weiter?

Beste Grüße

Stefan

0 Kudos

Hallo Stefan,

ja, das hilft sehr weiter Smiley Happy. Herzlichen Dank, jetzt geht's!

Viele Grüße

Anja

0 Kudos