| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <sect1 id="zend.validate.messages">
- <title>検証メッセージ(一部日本語)</title>
- <para>
- <classname>Zend_Validate</classname> を継承したバリデータには、
- 検証に失敗したときに使用するメッセージが用意されています。
- <!-- TODO : to be translated -->
- You can use this information to set your own messages,
- or to translate existing messages which a validator could return to something different.
- </para>
- <para>
- These validation messages are constants which can be found at top of each validator class.
- Let's look into <classname>Zend_Validate_GreaterThan</classname> for an descriptive example:
- </para>
-
- <programlisting language="php"><![CDATA[
- protected $_messageTemplates = array(
- self::NOT_GREATER => "'%value%' is not greater than '%min%'",
- );
- ]]></programlisting>
- <para>
- As you can see the constant <constant>self::NOT_GREATER</constant> refers to the failure and
- is used as key, and the message itself is used as value of the message array.
- </para>
- <para>
- You can retrieve all message templates from a validator by using the
- <methodname>getMessageTemplates()</methodname> method. It returns you the above array which
- contains all messages a validator could return in the case of a failed validation.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_GreaterThan();
- $messages = $validator->getMessageTemplates();
- ]]></programlisting>
- <para>
- Using the <methodname>setMessage()</methodname> method you can set another message to be
- returned in case of the specified failure.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_GreaterThan();
- $validator->setMessage(
- 'Please enter a lower value',
- Zend_Validate_GreaterThan::NOT_GREATER
- );
- ]]></programlisting>
- <para>
- The second parameter defines the failure which will be overridden. When you omit this
- parameter, then the given message will be set for all possible failures of this validator.
- </para>
- <sect2 id="zend.validate.messages.pretranslated">
- <title>Using pre-translated validation messages</title>
- <para>
- Zend Framework is shipped with more than 45 different validators with more than 200
- failure messages. It can be a tedious task to translate all of these messages. But for
- your convenience Zend Framework comes with already pre-translated validation messages.
- You can find them within the path <filename>/resources/languages</filename> in your
- Zend Framework installation.
- </para>
- <note>
- <title>Used path</title>
- <para>
- The resource files are outside of the library path because all of your translations
- should also be outside of this path.
- </para>
- </note>
- <para>
- So to translate all validation messages to German for example, all you have to do is to
- attach a translator to <classname>Zend_Validate</classname> using these resource files.
- </para>
- <programlisting language="php"><![CDATA[
- $translator = new Zend_Translate(
- array(
- 'adapter' => 'array',
- 'content' => '/resources/languages',
- 'locale' => $language,
- 'scan' => Zend_Translate::LOCALE_DIRECTORY
- )
- );
- Zend_Validate_Abstract::setDefaultTranslator($translator);
- ]]></programlisting>
- <note>
- <title>Used translation adapter</title>
- <para>
- As translation adapter Zend Framework chose the array adapter. It is simple to
- edit and created very fast.
- </para>
- </note>
- <note>
- <title>Supported languages</title>
- <para>
- This feature is very young, so the amount of supported languages may not be
- complete. New languages will be added with each release. Additionally feel free to
- use the existing resource files to make your own translations.
- </para>
- <para>
- You could also use these resource files to rewrite existing translations. So you
- are not in need to create these files manually yourself.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.validate.messages.limitation">
- <title>検証メッセージのサイズの制限</title>
- <para>
- 検証メッセージの最大サイズを制限しなければならないこともあるでしょう。
- たとえば、1 行に 100 文字までしかレンダリングできないなどの制限がビューにある場合です。
- このような場合のため、<classname>Zend_Validate</classname>
- では自動的に検証メッセージの最大長を制限できるようになっています。
- </para>
- <para>
- 実際に設定されているサイズを取得するには
- <methodname>Zend_Validate::getMessageLength()</methodname> を使用します。
- この結果が -1 の場合は、返されるメッセージが切り詰められることはありません。
- これがデフォルトの挙動です。
- </para>
- <para>
- 返されるメッセージのサイズを制限するには
- <methodname>Zend_Validate::setMessageLength()</methodname> を使用します。
- 必要に応じて任意の整数値を設定します。
- 返されるメッセージのサイズがここで設定した長さを超えると、
- メッセージが切り詰められて最後に文字列 '<emphasis>...</emphasis>'
- が付加されます。
- </para>
- <programlisting language="php"><![CDATA[
- Zend_Validate::setMessageLength(100);
- ]]></programlisting>
- <note>
- <title>このパラメータはどこで使われますか?</title>
- <para>
- ここで設定したメッセージ長はすべてのバリデータで使われます。
- 自前で定義したバリデータでさえも、それが <classname>Zend_Validate_Abstract</classname>
- を継承したものである限りは同じです。
- </para>
- </note>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|