Hallo Daniel,
ein Tipp zur vielleicht "knotenfreieren", allgemeinen Herangehensweise:
Wenn man das ganze nicht als Ablauflogik sondern anschaulich als Zuweisung einer "Eigenschaft VALID" versteht, finde ich es einfacher (so erkläre ich es auch in den Schulungen). Das ist dann übrigens auch konsistent mit den anderen Verwendungen der dynamischen Formulare (Sichtbarkeit, Editierbarkeit usw.) und man braucht für beides nur ein einziges Denkmodell.
Anschaulich funktioniert beides dann so: Das "Ergebnis" aus dem <WITH> wird in die Eigenschaft(en) gesteckt, die man im <DO> angibt.
Mir hilft es, vorher das Ganze auf einem Zettel als Pseudo(!)code zu formulieren. Man braucht letztlich eine Ermittlung der "Eigenschaft" VALID, hier an Deinem Beispiel mal exemplarisch
pt_title.valid = ?
Oft ist es aber einfacher, zunächst zu formulieren wann etwas UNgültig ist und das dann umzuformen:
"Das Feld ist GENAU DANN ungültig wenn es leer ist UND die Seite als übersetzt markiert ist" wird dann zu
pt_title.invalid = pt_title.empty && #global.translated
mit pt_title.invalid = ! (pt.title.valid) wird daraus
<=> ! pt_title.valid = pt_title.empty && #global.translated
<=> pt_title.valid = ! (pt_title.empty && #global.translated)
Und schon hat man das, was man nur noch in Regelsyntax gießen muss. Der linke Teil entspricht dann dem <PROPERTY source="pt_title" name="VALID"> in der Validierung, der rechte dem <WITH>-Teil.
Das Ganze funktioniert auch wunderbar wenn mehrere Komponenten im Spiel sind.
Viele Grüße
Michael