Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 08-09-2012 20:07:31

jfvole
Membre
Date d'inscription: 20-11-2010
Messages: 69

Traduction des erreurs de validation des formes

Bonjour,

Quelques petites questions à propos de la validation des form.

1° Malgré la lecture de la doc de ZF2 il n'y a pas grand chose sur Translator. Et impossible de le mettre en oeuvre.

http://zf2.readthedocs.org/en/latest/us … tions.html ????

http://zf2.readthedocs.org/en/latest/mo … ating.html (On ne sait ps trop ou mettre le code, et il n'y a pas d'exemple.)

http://zf2.readthedocs.org/en/latest/mo … menterrors (Pas un mot)

2° en testant le Skeleton, je suis obligé de passer local à fr_FR pour obtenir la traduction. Je pensais que cela dépendait du navigateur?

Code:

'service_manager' => array(
        'factories' => array(
            'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
        ),
    ),
    'translator' => array(
        'locale' => 'fr_FR',
        'translation_patterns' => array(
            array(
                'type'     => 'gettext',
                'base_dir' => __DIR__ . '/../language',
                'pattern'  => '%s.mo',
            ),
        ),
    ),

Hors ligne

 

#2 16-09-2012 12:05:25

macgile
Nouveau membre
Date d'inscription: 16-09-2012
Messages: 1

Re: Traduction des erreurs de validation des formes

Bonjour,

Je suis entièrement d accord avec jfvole.

je viens de suivre le quickstart de rob allen qui explique la traduction via les vues mais dés que les forms sont abordé il n'y a aucune information sur la traduction des labels de formulaires.

Naivement j'ai tenté : 'label' => $this->translate('Title'),
                                OU
                                'label' => $this->getView()->translate('Title'),

dans les deux cas une exception est levé.

C'est très étrange car la traduction des vues fonctionne parfaitement, ont se retrouve donc avec une application à moitié traduite ce qui est gênant si l'ont propose une application bilingue !!!!

Aucune infos sur google sur la traduction de formulaire ZF2 et dans la Doc ZF2 !!!


cordialement

Dernière modification par macgile (16-09-2012 12:18:06)

Hors ligne

 

#3 01-10-2012 14:01:21

Fredy
Nouveau membre
Date d'inscription: 01-10-2012
Messages: 5

Re: Traduction des erreurs de validation des formes

Salut à vous.

Effectivement je n'ai pas trouvé de solution pour traduire directement dans la class du formulaire.

Une méthode consiste dans le Controller appeler la méthode setLabel et de définir le text ici, exemple :

Code:

        $form = new AlphaForm();
        $form->get('Alpha')->setLabel('Un label');
        $form->get('Beta')->setLabel('Un autre label');
         [...]
        $form->get('submit')->setValue('Submit');

Si tu utilise gettext pour la traduction tu a juste à définir dans les mots clef source, en plus de translate, setLabel et setValue.

Hors ligne

 

#4 01-10-2012 22:55:26

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: Traduction des erreurs de validation des formes

Effectivement la doc n'est pas très claire, j'essayerai de modifier la doc' sur ce point.

Alors, pour les traductions des messages d'erreur :

// Module.php :

Code:

public function onBootstrap(EventInterface $e)
    {
        $serviceManager = $e->getApplication()->getServiceManager();

        // Set the translator for default validation messages
        $translator = $serviceManager->get('translator');
        AbstractValidator::setDefaultTranslator($translator);
    }

Dans module.config.php, ajoutez :

Code:

'translator' => array(
        'locale' => 'fr_FR',
        'translation_files' => array(
            array(
                'type'     => 'phpArray',
                'filename' => 'resources/languages/fr.php'
            ),
        ),
    ),

Ne reste plus qu'à créer un dossier "resources/languages/" (au même niveau que "module", "vendor" et compagnie...) et à y copier le fichier fr.php de traduction. Perso je préfère garder ma propre copie des traducitons, comme ça je peux changer certains messages.

Hors ligne

 

#5 01-10-2012 22:56:16

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: Traduction des erreurs de validation des formes

Mais ceci ne concerne que la traduction des messages d'erreur. Pour la traduction du reste (label...) c'est un autre mécanisme. Mais j'ai jamais utilisé.

Hors ligne

 

#6 02-10-2012 06:18:17

jfvole
Membre
Date d'inscription: 20-11-2010
Messages: 69

Re: Traduction des erreurs de validation des formes

Bonjour, et merci de vous pencher sur ce problème...

1° ca ne fonctionne toujours pas chez moi dans cette configuration avec une erreur au niveau du get('translator')

2° J'ai rajouté du code dans module.config.php

Code:

'service_manager' => array(
        'factories' => array(
            'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
            ),
    ),

3° une fois l'erreur corrigé la traduction ne se fait pas....

Hors ligne

 

#7 02-10-2012 19:13:44

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: Traduction des erreurs de validation des formes

Bizarre, ça marche bien chez moi... on est d'accord que l'on ne parle QUE de la traduction des messages d'erreur générés par les validateurs, et non des autres traductions ?

Hors ligne

 

#8 02-10-2012 20:43:00

jfvole
Membre
Date d'inscription: 20-11-2010
Messages: 69

Re: Traduction des erreurs de validation des formes

Tout a fait on ne parle que des erreurs de validation d'un Form.

Hors ligne

 

#9 02-10-2012 21:20:17

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: Traduction des erreurs de validation des formes

Je viens de retester en mettant à jour le framework, ça marche bien ici. Tu as bien la dernière version en date de ZF 2 ?

Tu as bien mis ton fichier de traduction au bon endroit ?

Hors ligne

 

#10 04-10-2012 15:49:12

jfvole
Membre
Date d'inscription: 20-11-2010
Messages: 69

Re: Traduction des erreurs de validation des formes

Tout est de la dernière version...

Tout est conforme a ton explication...

Hors ligne

 

#11 17-12-2012 13:51:01

J0r
Membre
Date d'inscription: 27-04-2012
Messages: 57

Re: Traduction des erreurs de validation des formes

Même si c'est un vieux sujet je mets ce que j'ai fais et ce qui fonctionne.

J'ai mis ça dans le dossier config/autoload (niveau au dessus du module) :

Code:

[lang=php]
'translator' => array(
        'locale' => 'fr_FR',
        'translation_files' => array(
            array(
                'type'     => 'phpArray',
                'filename' => 'resources/languages/fr.php'
            ),
        ),
    ),

le fichier :

Ne reste plus qu'à créer un dossier "resources/languages/" (au même niveau que "module", "vendor" et compagnie...) et à y copier le fichier fr.php de traduction. Perso je préfère garder ma propre copie des traducitons, comme ça je peux changer certains messages.

et dans mon module.php

Code:

[lang=php]
    public function onBootstrap(\Zend\EventManager\Event $e) {
        //Récupération de l'application
        $app = $e->getParam('application');
        //Récupération de la configuration
        $config = $app->getConfig();

        //Définit les paramètres de traduction
        $this->setTranslate($config['translator']);
    }

    public function setTranslate($options) {        
        $translator = new \Zend\I18n\Translator\Translator();
        $translator = $translator->factory($options);

        \Zend\Validator\AbstractValidator::setDefaultTranslator($translator);
    }

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