Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-03-2008 16:20:35

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

[Zend_Form][1.5] Changer la lanque des messages d'erreurs Zend_Form

Quand j'ajoute des validators à mes champs Zend_Form(je passe par un fichier de config), les messages d'erreur apparaissent en Anglais.
Y a t il moyen de les avoir en Francais ?
J'ai essayé de mettre un

Code:

Zend_Locale::setDefault('fr_FR');

Mais çà n'a pas l'air de fonctionner.

Hors ligne

 

#2 07-03-2008 16:54:16

Peggy
Membre
Date d'inscription: 11-02-2008
Messages: 25
Site web

Re: [Zend_Form][1.5] Changer la lanque des messages d'erreurs Zend_Form

Bonjour,

j'ai réussit à le faire en créant un fichier de tracductuion comme ca :

traduction.php

Code:

<?php
 return array( "stringLengthTooShort"   => "'%value%' fait moins de %min% caractères. ",
             "stringLengthTooLong"    => "'%value%' fait plus de %max% caractères. ",
             "notInArray"                  => "'%value%' n'a pas été trouvé dans le tableau. ",
             ...
                   );
?>

et j'ai inséré dans mes controllers :

Code:

//Traduction automatique des messages d'erreur
Zend_Loader::loadClass('Zend_Validate_Abstract');
$translator = new Zend_Translate('array','../application/traduction/traduction.php','fr');
Zend_Validate_Abstract::setDefaultTranslator($translator);

voilà...

Dernière modification par Peggy (07-03-2008 16:56:22)

Hors ligne

 

#3 07-03-2008 19:37:41

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Zend_Form][1.5] Changer la lanque des messages d'erreurs Zend_Form

Pour mettre ça directement dans le code de la config du form, perso j'ai pas réussi non plus. Je sais qu'avant c'était possible via PHP mais là j'ai pas trouvé.
Le seul moyen c'est de passer par un Translator.
Donc en faite si tu fais un translator avec un .ini c'est possible mais j'ai pas essayé. Ca sera l'équivalent du tableau de Peggy du post au dessus. Et peux utiliser quasiment le même code pour charger la config.

Rq: Dans la mesure ou vous savez qu'une classe existe, n'utiliser pas Zend_Loader::loadClass() car c'est plus lourd qu'un simple require(_once). Par contre quand il s'agit d'incorporer une classe à partir d'une string formaté j'dis pas smile

Hors ligne

 

#4 10-03-2008 09:34:45

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [Zend_Form][1.5] Changer la lanque des messages d'erreurs Zend_Form

ok.
Petites questions
1) Ces messages affichés ils sont stockés où exactement ? Je ne les vois pas dans les sources, c'est géré par le navigateur ? Peut être que je dis une grosse bêtise...mais j'aimerai comprendre... smile
2) Je ne comprend pas pourquoi en faisant un

Code:

Zend_Locale::setDefault('fr_FR');

dans mon bootstrap, le message d'erreur généré suite à la saisie d'une date mal formatée est  :

Code:

... is not of the format YYYY-MM-DD

Je pensais (naïvement) que le format date de ma localité était connu...Je fais quelque chose qui ne va pas là, ou bien ? smile

Hors ligne

 

#5 10-03-2008 16:44:13

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Form][1.5] Changer la lanque des messages d'erreurs Zend_Form

Pour aider, voici mon formulaire de d'identification avec la traduction pour la validator NotEmpty

Code:

class My_Form_Login extends Zend_Form
{
    public function __construct($options = null)
    {
        $english = array('isEmpty' =>
                         'Le champ ne peut rester vide');
        $translate = new Zend_Translate('array', $english, 'fr');
        $translate->setLocale('fr');
        Zend_Validate_Abstract::setDefaultTranslator($translate);
        
        parent::__construct($options);
        $this->setName('login');
        
        $username = new Zend_Form_Element_Text('login');
        $username->setLabel('Identifiant:');
        $username->setRequired(true);
        $username->addValidator('NotEmpty');

        $password = new Zend_Form_Element_Password('password');
        $password->setLabel('Mot de passe:');
        $password->setRequired(true);
        $password->addValidator('NotEmpty');

        $submit = new Zend_Form_Element_Submit('submit');
        $submit->setLabel('Envoyer');

        $this->addElements(array(
            $username,
            $password,
            $submit
        ));
        
        
    }
}

Biensur, il faut regarder dans le code du framework pour trouver la constante à traduire (ici isEmpty)

Dernière modification par nORKy (10-03-2008 16:44:32)


----
Gruiiik !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages