ampersand83
I'm new here

Frage zu sprachabhängiger Validierung in FS 5

Hallo zusammen,

gehe ich recht in der Annahme, dass ich es mit dem Validierungs in FS 5 nicht hinbekommen kann, dass z.B. eine Pflichtfedprüfung das speichern nur in der gerade aktiven Sprache verhindert? Sprich eine Überschrift soll sowohl im deutschen als auch im englischen Sprachkanal ein Pflichtfeld sein. Da aber nicht immer der englische Sprachkanal auch genutzt wird, soll sich das Formular abspeichern lassen, wenn ich nur das deutsche Pflichtfeld ausgefüllt habe.

Wenn ich dann aber in den englischen Kanal wechsle will ich natürlich die Prüfung auch für den englischen Kanal haben. Es soll dann verhindert werden, dass ich das Formular mit leerem Pflichtfeld in diesem Kanal abspeichern kann. Diese Prüfung darf aber nur erfolgen, wenn ich mich auch in diesem Kanal befinde.

Ich bekomme das aber nicht hin. Folgendes habe ich versucht:

<RULES>

    <ON_SAVE>

        <IF>

            <EQUAL>

                <PROPERTY source="#global" name="LANG"/>

                <TEXT>DE</TEXT>

            </EQUAL>

        </IF>

        <WITH>

            <NOT>

                <PROPERTY source="pt_title" name="EMPTY"/>

            </NOT>

        </WITH>

        <DO>

            <VALIDATION>

            <PROPERTY source="pt_title" name="VALID"/>

            <MESSAGE lang="*" text="Der Editor darf nicht leer sein!"/>

        </VALIDATION>

        </DO>

    </ON_SAVE>

    <ON_SAVE>

        <IF>

                <EQUAL>

                    <PROPERTY source="#global" name="LANG"/>

                    <TEXT>EN</TEXT>

                </EQUAL>

        </IF>

        <WITH>

            <NOT>

                <PROPERTY source="pt_title" name="EMPTY"/>

            </NOT>

        </WITH>

        <DO>

            <VALIDATION>

            <PROPERTY source="pt_title" name="VALID"/>

            <MESSAGE lang="*" text="Der Editor darf nicht leer sein!"/>

        </VALIDATION>

        </DO>

    </ON_SAVE>

</RULES>

Auf diese Weise werden aber einfach wieder beide Sprachkanäle geprüft. Ich hatte gemäß der Doku ja eigentlich erwartet, dass die zweite Regel nur greift, wenn ich mich auch aktiv im englischen Sprachkanal befinde. Das ist aber anscheinend ein Trugschluß.

Kann mir hier jemand weiterhelfen. Es wäre für unsere Projekt sehr wichtig das hinzubekommen.

Gruß,

Stefan

0 Kudos
19 Replies
Peter_Jodeleit
Crownpeak employee

Man kann innerhalb der Regeln auf das "Übersetzt"-Flag des Absatzes zugreifen. Einfach mal etwas im Beispielprojekt stöbern...

Peter
feddersen
Community Manager

Ist das mit der aktiven Sprache wirklich sinnvoll? Als Redakteur kann ich ja einfach zwischen Sprachreitern wechseln, ohne zu speichern.

Folgende Überlegungen könnten weiterhelfen:

1) Man nutzt den "Seite ist für diese Sprache vollständig übersetzt" Haken.

2) Felder sind nur Pflichtfelder, wenn mindestens ein Feld für diese Sprache gefüllt ist

3) Man alle Sprachen erst ON_RELEASE und nicht bereits beim Speichern.

ampersand83
I'm new here

Das Translated Property hatte ich gerade in diesem Moment selber gefunden. 🙂

Damit werde ich glaube ich glücklich. Aber auch vielen Dank für die Hinweise.

0 Kudos
ampersand83
I'm new here

Bin jetzt noch auf ein Problem gestoßen. Wie könnte ich das ganze bei den Projekteinstellungen machen? Hier gibt es ja nicht den Translated Haken.

0 Kudos

Projekteinstellungen sind immer sprachunabhängig.

0 Kudos
ampersand83
I'm new here

Wir haben jetzt noch ein Problem festgestellt. Bei Seitenvorlagen ist standardmäßig der zweite Sprachkanal (hier Englisch) als nicht übersetzt gekennzeichnet, bei Absatzvorlagen allerdings nicht. Hier ist standardmäßig die Vorlage als Übersetzt gekennzeichnet. Die Abfrage in den Validierungsregeln auf das Attribut translated klappt daher an dieser Stelle nicht.

Gibt es für dieses Verhalten einen Grund und kann ich evtl. konfigurieren, ob eine Absatzvorlage direkt nach dem einbinden in eine Seite automatisch als übersetzt gekennzeichnet wird oder nicht?

Über Hinweise und Tipps wäre ich sehr dankbar.

0 Kudos

Weiß hierzu wirklich niemand etwas. Bin langsam ein wenig am verzweifeln.

Es scheint das #global.translated nicht nur auf Seitenebene, sondern auch auf Absatzebene prüft und da die standardmäßig immer als übersetzt gekennzeichnet sind, tritt wohl auch der Fehler auf.

0 Kudos

Hier noch eine der angewandten Regeln:

<ON_SAVE>

        <IF>

            <OR>

            <EQUAL>

                <PROPERTY source="#global" name="LANG"/>

                <TEXT>DE</TEXT>

            </EQUAL>

            <EQUAL>

                <PROPERTY source="#global" name="LANG"/>

                <TEXT>EN</TEXT>

            </EQUAL>               

            </OR>       

        </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="Der Editor darf nicht leer sein!"/>

        </VALIDATION>

        </DO>

    </ON_SAVE>   

Meines Erachtens nach sollte es doch so gehen das Feld nur in deutscher Sprache abspeichern zu müssen und im englischen Kanal nichts auszufüllen. Leider geht es aber nicht.

Es erscheint ein Popup mit der Meldung "Das Formular kann nicht gespeichert werden, da noch fehlerhafte Eingaben vorliegen. Bitte korrigieren Sie diese Fehler." Optisch als Fehler wird das ganze aber nicht gekennzeichnet. Kann hier vielleicht noch ein Bug bei der Validierung vorliegen?

0 Kudos

Die Eigenschaft "übersetzt" bezieht sich immer auf die gesamte Seite inklusive aller Absätze. Auf Absatzebene kann man alternativ die Eigenschaft "soll für eine Sprache in der Ausgabe erscheinen" (INCLUDED) benutzen.

Peter
0 Kudos