Hallo Marvin,
Das Beispiel hat einen Haken, und zwar funktioniert es nur in eine Richtung zuverlässig, nämlich beim "Invalidieren".
Angenommen das Feld ist initial leer, der Haken "übersetzt" NICHT gesetzt. Der Redakteuer lässt das Feld leer, und setzt (ggf. versehentlich) den Haken "übersetzt". Die Validierung springt an, das Feld wird rot markiert. Soweit OK.
Wenn der Redakteur jetzt aber - ohne das Feld zu füllen - den Übersetzt-Haken wieder entfernt, ist das Feld weiterhin NICHT gültig, das Formular kann nicht gespeichert werden.
Hintergrund: Die Validierungsprüfung (anschaulich: das Setzen der Eigenschaft "VALID") wird in Deinem Beispiel nur durchgeführt solange bzw. wenn der Übersetzt-Haken gesetzt ist. Zur Prüfung gehört aber neben dem "als ungültig markieren" immer auch das Gegenstück "als gültig markieren". Und gerade letzteres wird durch die Abfrage des Übersetzt-Status in der Vorbedingung unterbunden.
Grundsätzlich muss man sehr genau überlegen, ob man Dinge/Eigenschaften, die der Redakteuer selber ändern kann in die Vorbedingung setzt. Fast immer sind solche Sachen in der Wertermittlung besser aufgehoben (hier mal ohne die Storeprüfung):
<ON_SAVE>
<IF>
<EQUAL>
<PROPERTY source="#global" name="LANG"/>
<PROPERTY source="#global" name="MASTER"/>
</EQUAL>
</IF>
<WITH>
<NOT>
<AND>
<PROPERTY source="st_headline" name="EMPTY"/>
<PROPERTY source="#global" name="TRANSLATED"/>
</AND>
</NOT>
</WITH>
<DO>
<VALIDATION>
<PROPERTY source="st_headline" name="VALID"/>
<MESSAGE lang="*" text="A Headline must be provided!"/>
<MESSAGE lang="DE" text="Eine Überschrift muss erfasst werden!"/>
</VALIDATION>
</DO>
</ON_SAVE>
Selbst eine Abfrage des FOCUS funktioniert ggf. nur solange wie eben dieses Feld selber nicht durch eine andere Regel gesetzt wird.
Michael