<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 20774 -->
<!-- Reviewed: no -->
<sect2 id="zend.filter.set.localizedtonormalized">

    <title>LocalizedToNormalized</title>

    <para>
        Ce filtre va transformer toute entrée localisée en sa représentation normalisée. La transformation est effectuée
        grâce à <classname>Zend_Locale</classname> en interne.
    </para>

    <para>
        Ceci permet à l'utilisateur de saisir des information dans sa propre locale, et du coté serveur de stocker les informations
        normalisées relatives.
    </para>

    <note>
        <para>
            Attention la normalisation n'est pas de la traduction. Ce filtre ne sait pas traduire des chaines d'un langage à un autre.
        </para>
    </note>

    <para>
        Les types suivants peuvent être normalisés:
    </para>

    <itemizedlist>
        <listitem>
            <para>
                <emphasis>entiers</emphasis>: Nombres entiers localisés. Ils seront normalisés
                dans la notation anglaise internationnale.
            </para>
        </listitem>

        <listitem>
            <para>
                <emphasis>float</emphasis>: Nombres flottants. Ils seront normalisés
                dans la notation anglaise internationnale.
            </para>
        </listitem>

        <listitem>
            <para>
                <emphasis>nombres</emphasis>: Nombres réels. Ils seront normalisés
                dans la notation anglaise internationnale.
            </para>
        </listitem>

        <listitem>
            <para>
                <emphasis>time</emphasis>: Valeurs de temps. Normalisées sous forme de tableaux.
            </para>
        </listitem>

        <listitem>
            <para>
                <emphasis>date</emphasis>: Valeurs de date. Normalisées sous forme de tableaux.
            </para>
        </listitem>
    </itemizedlist>

    <para>
        Tout autre type d'entrée sera retourné tel quel, sans tranformation, par ce filtre.
    </para>

    <note>
        <para>
            Notez bien que toute sortie normalisée de ce filtre est de type chaine de caractères.
        </para>
    </note>

    <sect3 id="zend.filter.set.localizedtonormalized.numbers">

        <title>Normaliser des nombres</title>

        <para>
            Tout type de nombre peut être normalisé, excepté les nombres représentant une notation scientifique.
        </para>

        <para>
            Voici un exemple:
        </para>

        <programlisting language="php"><![CDATA[
// Initialise le filtre
$filter = new Zend_Filter_LocalizedToNormalized();
$filter->filter('123.456,78');
// retourne '123456.78'
]]></programlisting>

        <para>
            Imaginons que nous utilisoons la locale 'de' de manière globale sur toute l'application.
            <classname>Zend_Filter_LocalizedToNormalized</classname> va utiliser cette locale là pour calculer sa sortie.
        </para>

        <para>
            Il est possible de contrôler la normalisation des nombres. Toute options accépté par
            <classname>Zend_Locale_Format</classname> peut alors être utilisée. Les plus courantes sont:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>date_format</emphasis>
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>locale</emphasis>
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>precision</emphasis>
                </para>
            </listitem>
        </itemizedlist>

        <para>
            Pour plus de détails à ce sujet, voyez le chapitre <link linkend="zend.locale.parsing">
            Zend_Locale</link>.
        </para>

        <para>
            Voici un exemple utilisant la précision:
        </para>

        <programlisting language="php"><![CDATA[
// Numeric Filter
$filter = new Zend_Filter_LocalizedToNormalized(array('precision' => 2));

$filter->filter('123.456');
// retourne '123456.00'

$filter->filter('123.456,78901');
// retourne '123456.79'
]]></programlisting>

    </sect3>

    <sect3 id="zend.filter.set.localizedtonormalized.dates">

        <title>Normaliser des dates et des temps</title>

        <para>
            Les dates et temps peuvent être normalisés eux aussi. La sortie du filtre sera alors toujours de type tableau.
        </para>

        <programlisting language="php"><![CDATA[
// Initialise le filtre
$filter = new Zend_Filter_LocalizedToNormalized();
$filter->filter('12.April.2009');
// retourne array('day' => '12', 'month' => '04', 'year' => '2009')
]]></programlisting>

        <para>
            Imaginons une fois de plus une locale globale 'de'. L'entrée est donc automatiquement reconnue comme date
            et vous aurez un tableau en sortie.
        </para>

        <para>
            Vous pouvez contrôler la transformation du filtre grâce aux paramètres
            <emphasis>date_format</emphasis> et <emphasis>locale</emphasis>.
        </para>

        <programlisting language="php"><![CDATA[
// Date Filter
$filter = new Zend_Filter_LocalizedToNormalized(
    array('date_format' => 'ss:mm:HH')
);

$filter->filter('11:22:33');
// retourne array('hour' => '33', 'minute' => '22', 'second' => '11')
]]></programlisting>
    </sect3>

</sect2>

<!--
vim:se ts=4 sw=4 et:
-->