Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Form
Zend_Form Forum d'entraide pour le composant Zend_Form du Zend Framework (création de formulaires, helpers, AJAX etc.). Avant de poster -> FAQ Zend_Form.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/04/2008, 16h57   #1
Invité de passage
 
Inscription : avril 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 15
Points : 4
Points : 4
Par défaut [Zend Form] Traduction des messages d'erreur

J'aimerai bien traduire en francais les messages d'erreur issu des forms généré par zend form.

Les message dans ce style la pour les mail par exemple

* 'aol' is not a valid hostname for email address 'huhu@aol'
* 'aol' does not match the expected structure for a DNS hostname
* 'aol' appears to be a local network name but local network names are not allowed

Sans passé par le Zend Translate si possible.

Merci
Coyote Terrorist est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 10h02   #2
Invité de passage
 
Inscription : avril 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 15
Points : 4
Points : 4
Code :
1
2
3
		$french = array("isEmpty" => "Le champ est vide");
		$translate = new Zend_Translate('array', $french, 'fr');
		$this->setTranslator($translate);
Voila la solution la plus simple que j'ai pu trouver.
Coyote Terrorist est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 11h20   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 28
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mai 2007
Messages : 28
Points : 10
Points : 10
Bonjour, chaque message d'erreur possède un ID par exemple l'ID de l'erreur si le champs est vide alors qu'il devré etre rempli est "isEmpty" , tu peux donc creer un fichier de traduction comme ceci :


Code :
1
2
3
4
 
 
isEmpty;Ce champ ne doit pas être vide
stringLengthTooShort;Chaine trop courte
le fichier est a mettre dans un répertoire language que tu appel globalerror_fr.csv par exemple si tu a choisi la methode csv pour les translates
et globalerror_en.csv pour l'anglais,
ensuite dans ton controller tu défini la methode :

Code :
1
2
3
4
5
6
 
 
   Zend_Loader::loadClass("Zend_Translate");
   /**langue de depart**/	
    $this->translate = new Zend_Translate('csv', './language', null, arra('scan' => Zend_Translate::LOCALE_FILENAME));
    	$this->view->translate = $this->translate;
des translate et hop magique Zend recupere la langue du navigateur et gère tout tout seul comme un grand

si tu a utiliser un objet de type Zend_form alors tout se fera en automatique
neufcm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2009, 23h14   #4
Membre du Club
 
Inscription : novembre 2007
Messages : 236
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 236
Points : 40
Points : 40
Je me permets de m'incruster dans le topic pour dire merci dans un premier temps, cette soluce m'a bien aidée, et en second temps, pour me permettre de dire au prochain qui peuvent galérer comme moi durant une demi heure:

Si vous obtenez une erreur T_DOUBLE_ARROW, la raison est simple, il manque un "y" à "array":

Code :
1
2
3
4
 
Zend_Loader::loadClass("Zend_Translate");
 
 $this->translate = new Zend_Translate('csv', './language', null, array('scan' => Zend_Translate::LOCALE_FILENAME));
Et j'ajoute que pour généraliser à toute l'application, on peux mettre ceci dans le bootstrap à la place:

Code :
1
2
3
4
5
6
 
$translate = new Zend_Translate('csv', $appPath.'/language', null, array('scan' => Zend_Translate::LOCALE_FILENAME));
 
$translate->setLocale('fr_FR');
 
Zend_Registry::set('Zend_Translate', $translate);
Voilou... Simplement qu'il est bon d'aider quand on peux

Merci encore
Dev@lone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2009, 18h45   #5
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417

C'est ici : http://zend-framework.developpez.com...-translate-err
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2009, 09h27   #6
Membre du Club
 
Développeur Web
Inscription : décembre 2006
Messages : 65
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 65
Points : 61
Points : 61
Cette solution ne fonctionne pas a 100% dans mon cas:
J'ai bien fait comme indiqué dans la faq à la difference que j'utilise des ids, gérant moi même la traduction

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public function __construct($options = null)
    {
        parent::__construct($options);
 
        // traduction des messages d'erreur de validation
        $french = array(
	        'notAlnum' => "formerreur_doit_etre_alphanumerique",
	        (...)
                'emailAddressInvalid' => "formerreur_email_incorrecte",
	        'emailAddressInvalidHostname' => "formerreur_email_incorrecte",
	        'emailAddressInvalidMxRecord' => "formerreur_email_incorrecte",
	        'emailAddressDotAtom' => "formerreur_email_incorrecte",
	        'emailAddressQuotedString' => "formerreur_email_incorrecte",
	        'emailAddressInvalidLocalPart' => "formerreur_email_incorrecte",
                (...)
	        'stringLengthTooLong' => "formerreur_chaine_trop_longue"
        );
 
        $translate = new Zend_Translate('array', $french, 'fr');
        $this->setTranslator($translate);
    }
Hors lors d'une mauvaise saisie d'email
Il m'affiche une erreur concaténant mon tag et l'erreur zend_form
exple
Code :
formerreur_email_incorrecte 'societe' does not match the expected structure for a DNS hostname 'societe' appears to be a local network name but local network names are not allowed
Complement d'info:
Je n'ai ce comportement bizarre que pour l'erreur emailAddressInvalidHostname (email@societe)
les autres il me retourne bien mon tag seul


note: j'utilise ZF 1.8.4
imikado est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2009, 10h25   #7
Membre du Club
 
Développeur Web
Inscription : décembre 2006
Messages : 65
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 65
Points : 61
Points : 61
Par défaut RESOLU

Je vous mets la réponse (ca peut servir)
Le comportement particulier de cette erreur est du au fait qu'il génère en plus une erreur de validation d'hostname

J'ai ajouté ces quelques lignes pour eviter d'avoir cette sortie "concatené"

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public function __construct($options = null)
    {
        parent::__construct($options);
 
        // traduction des messages d'erreur de validation
        $french = array(
	      (...)
 
	        'emailAddressInvalid' => "formerreur_email_incorrecte",
	        'emailAddressInvalidFormat' => "formerreur_email_incorrecte",
	        'emailAddressInvalidHostname' => "formerreur_email_incorrecte",
	        'emailAddressInvalidMxRecord' => "formerreur_email_incorrecte",
	        'emailAddressDotAtom' => "formerreur_email_incorrecte",
	        'emailAddressQuotedString' => "formerreur_email_incorrecte",
	        'emailAddressInvalidLocalPart' => "formerreur_email_incorrecte",
	        'emailAddressLengthExceeded' => "formerreur_email_incorrecte",
 
                //ajout des ids d'erreurs d'hostname
			'hostnameIpAddressNotAllowed' => '',
			'hostnameUnknownTld'=> '',
			'hostnameDashCharacter'=> '',
			'hostnameInvalidHostnameSchema'=> '',
			'hostnameUndecipherableTld'=> '',
			'hostnameInvalidHostname'=> '',
			'hostnameInvalidLocalName'=> '',
			'hostnameLocalNameNotAllowed'=> '',
			'hostnameCannotDecodePunycode'=> '',
 
 
	       (...)
        );
imikado est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 19h30   #8
Invité de passage
 
Inscription : août 2011
Messages : 1
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 1
Points : 1
Points : 1
Bonjour,
Il y a plus simple avec le pack "complet" pour ZF (et non le pack minimal qui ne contient pas les ressources).

Documentation officielle ZF

Je suis tombé sur cette recherche depuis Google... Autant partager une autre bonne réponse
doubleslash est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 19h33   #9
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 688
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 688
Points : 1 055
Points : 1 055
Merci du partage mais si tu regarde le dernier message remonte à il y a 2 ans.
A cette époque, la 1.11 n'existait pas et ces traductions également.
5h4rk est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h10.


 
 
 
 
Partenaires

Hébergement Web