[GENERIC] Manual:
[zend.git] / documentation / manual / de / module_specs / Zend_Validate-Messages.xml
blob09bc755bc6bc179bd93379fe145754e50a43e00b
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- EN-Revision: 21213 -->
3 <!-- Reviewed: no -->
4 <sect1 id="zend.validate.messages">
5     <title>Prüfungsmeldungen</title>
7     <para>
8         Jede Prüfung die auf <classname>Zend_Validate</classname> basiert, bietet im Fall einer
9         fehlgeschlagen Prüfung eine oder mehrere Meldungen an. Diese Information kann verwendet
10         werden um eigene Meldungen zu setzen, oder bestehende Meldungen welche eine Prüfung
11         zurückgeben könnte, auf etwas anderes zu übersetzen.
12     </para>
14     <para>
15         Diese Prüfmeldungen sind Konstanten welche am Beginn jeder Prüfklasse gefunden werden
16         können. Sehen wir uns für ein beschreibendes Beispiel
17         <classname>Zend_Validate_GreaterThan</classname> an:
18     </para>
20     <programlisting language="php"><![CDATA[
21 protected $_messageTemplates = array(
22     self::NOT_GREATER => "'%value%' is not greater than '%min%'",
24 ]]></programlisting>
26     <para>
27         Wie man siehr referenziert die Konstante <constant>self::NOT_GREATER</constant> auf den
28         Fehler und wird als Schlüssel verwendet. Und die Nachricht selbst ist der Wert des
29         Nachrichtenarrays.
30     </para>
32     <para>
33         Man kann alle Nachrichten Templates einer Prüfung erhalten indem man die Methode
34         <methodname>getMessageTemplates()</methodname> verwendet. Diese gibt das oben stehende array
35         zurück, welches alle Nachrichten enthält die eine Prüfung im Falle einer fehlgeschlagenen
36         Prüfung zurückgeben kann.
37     </para>
39     <programlisting language="php"><![CDATA[
40 $validator = new Zend_Validate_GreaterThan();
41 $messages  = $validator->getMessageTemplates();
42 ]]></programlisting>
44     <para>
45         Indem die Methode <methodname>setMessage()</methodname> verwendet wird kann man eine andere
46         Meldung definieren die im Fall des spezifizierten Fehlers zurückgegeben werden.
47     </para>
49     <programlisting language="php"><![CDATA[
50 $validator = new Zend_Validate_GreaterThan();
51 $validator->setMessage('Bitte einen kleineren Wert angeben', Zend_Validate_GreaterThan::NOT_GREATER);
52 ]]></programlisting>
54     <para>
55         Der zweite Parameter definiert den Fehler der überschrieben wird. Wenn man diesen Parameter
56         nicht angibt, wird die angegebene Meldung für alle möglichen Fehler dieser Prüfung gesetzt.
57     </para>
59     <sect2 id="zend.validate.messages.pretranslated">
60         <title>Verwendung vor-übersetzter Prüfungsmeldungen</title>
62         <para>
63             Zend Framework wird mit mehr als 45 unterschiedlichen Prüfern und mehr als 200
64             Fehlermeldungen ausgeliefert. Es kann eine zeitraubende Aufgabe sein alle diese
65             Meldungen zu übersetzen. Aber der Bequemlichkeit halber kommt Zend Framework mit
66             bereits vor-übersetzten Prüfmeldungen. Diese können im Pfad
67             <filename>/resources/languages</filename> der eigenen Zend Framework Installation
68             gefunden werden.
69         </para>
71         <note>
72             <title>Verwendeter Pfad</title>
74             <para>
75                 Die Ressource Dateien liegen ausserhalb des Bibliothekspfads weil alle Übersetzungen
76                 ausserhalb dieses Pfades liegen sollten.
77             </para>
78         </note>
80         <para>
81             Um also alle Prüfmeldungen zum Beispiel auf Deutsch zu übersetzen muss man nur einen
82             Übersetzer an <classname>Zend_Validate</classname> anhängen der diese Ressourcedateien
83             verwendet.
84         </para>
86         <programlisting language="php"><![CDATA[
87 $translator = new Zend_Translate(
88     'array',
89     '/resources/languages',
90     $language,
91     array('scan' => Zend_Translate::LOCALE_DIRECTORY)
93 Zend_Validate_Abstract::setDefaultTranslator($translator);
94 ]]></programlisting>
96         <note>
97             <title>Verwendeter Übersetzungsadapter</title>
99             <para>
100                 Als Übersetzungsadapter hat Zend Framework den Array Adapter ausgewählt. Er ist
101                 einfach zu bearbeiten und sehr schnell erstellt.
102             </para>
103         </note>
105         <note>
106             <title>Unterstützte Sprachen</title>
108             <para>
109                 Dieses Feature ist sehr jung, und deshalb ist die Anzahl der unterstützten Sprachen
110                 nicht sehr komplett. Neue Sprachen werden mit jedem Release hinzugefügt. Zusätzlich
111                 können die existierenden Ressourcedateien verwendet werden um eigene Übersetzungen
112                 durchzuführen.
113             </para>
115             <para>
116                 Man kann diese Ressource Dateien auch verwenden um existierende Übersetzungen
117                 umzuschreiben. Man muss diese Dateien also nicht selbst per Hand erstellen.
118             </para>
119         </note>
120     </sect2>
122     <sect2 id="zend.validate.messages.limitation">
123         <title>Begrenzen der Größe einer Prüfungsmeldung</title>
125         <para>
126             Manchmal ist es notwendig die maximale Größe die eine Prüfungsmeldung haben kann zu
127             begrenzen. Zum Beispiel wenn die View nur eine maximale Größe von 100 Zeichen für die
128             Darstellung auf einer Zeile erlaubt. Um die Verwendung zu vereinfachen, ist
129             <classname>Zend_Validate</classname> dazu in der Lage die maximal zurückgegebene
130             Größe einer Prüfnachricht zu begrenzen.
131         </para>
133         <para>
134             Um die aktuell gesetzte Größe zu erhalten ist
135             <methodname>Zend_Validate::getMessageLength()</methodname> zu verwenden. Wenn diese
136             -1 ist, dann wird die zurückgegebene Nachricht nicht begrenzt. Das ist das
137             Standardverhalten.
138         </para>
140         <para>
141             Um die Größe der zurückgegebenen Nachrichten zu begrenzen ist
142             <methodname>Zend_Validate::setMessageLength()</methodname> zu verwenden. Man kann diese
143             auf jede benötigte Integer Größe setzen. Wenn die zurückzugebende Nachricht die
144             gesetzte Größe überschreitet, dann wird die Nachricht abgeschnitten und der String
145             '<emphasis>...</emphasis>' wird statt dem Rest der Nachricht hinzugefügt.
146         </para>
148         <programlisting language="php"><![CDATA[
149 Zend_Validate::setMessageLength(100);
150 ]]></programlisting>
152         <note>
153             <title>Wo wird dieser Parameter verwendet?</title>
155             <para>
156                 Die gesetzte Länge der Nachrichten wird für alle Prüfungen verwendet, sogar für
157                 selbstdefinierte, solange Sie <classname>Zend_Validate_Abstract</classname>
158                 erweitern.
159             </para>
160         </note>
161     </sect2>
162 </sect1>