data-substitution und data-pre/post-text beim label Widget

Begonnen von dt2510, 14 Oktober 2019, 13:06:46

Vorheriges Thema - Nächstes Thema

dt2510

Es taucht immer wieder das Problem auf, dass ich bei der Anzeige von Stückzahlen Ein-/Mehrzahl angeben muss, z.B.

<div data-type="label" data-device="Lights" data-get="lightsOn" data-pre-text="es ist/sind " data-post-text=" Lampe(n) eingeschaltet"></div>

Die Anzeige sieht entsprechend so aus

es ist/sind 0 Lampe(n) eingeschaltet
es ist/sind 1 Lampe(n) eingeschaltet
es ist/sind 2 Lampe(n) eingeschaltet

Schöner wäre natürlich

es sind 0 Lampen eingeschaltet
es ist 1 Lampe eingeschaltet
es sind 2 Lampen eingeschaltet

Ich habe es mit data-substitution versucht, aber hier scheint pre/post-text nicht beachtet zu werden

<div data-type="label" data-device="Lights" data-get="lightsOn" data-pre-text="es sind " data-post-text=" Lampen eingeschaltet" data-substituition=["sind 1 Lampen","ist 1 Lampe"]></div>

Ergebnis

es sind 0 Lampen eingeschaltet
es sind 1 Lampen eingeschaltet
es sind 2 Lampen eingeschaltet

Wie löst ihr so etwas ?

setstate

Mit RegEx im data-substitution geht das.

<div data-type="label" data-device="ftuitest" data-substitution='["^([02-9]+|[0-9]{2,})$", "$1 Lampen", "^1$", "1 Lampe"]'></div>

pre-text und post-text wird erst nach der data-substitution Behandlung angefügt.

dt2510

Zitat von: setstate am 15 Oktober 2019, 20:55:23
Mit RegEx im data-substitution geht das.

<div data-type="label" data-device="ftuitest" data-substitution='["^([02-9]+|[0-9]{2,})$", "$1 Lampen", "^1$", "1 Lampe"]'></div>

pre-text und post-text wird erst nach der data-substitution Behandlung angefügt.

auf die Idee bin ich noch gar nicht gekommen ...

sähe dann bei mir also so aus:
<div data-type="label" data-device="Lights" data-get="lightsOn" data-pre-text="es " data-post-text=" eingeschaltet" data-substituition=["^([02-9]+|[0-9]{2,})$", "sind $1 Lampen", "^1$", "ist 1 Lampe"]></div>

Ich muss unbedingt in RegEx fitter werden ... gibt es da eine einigermäßen verständliche Dokumentation (zumal RegEx meines Wissens ja nicht überall gleich ist ...)

Eisix