Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je suis en train d'apprendre à réaliser des formulaires et me retrouve actuellement avec des messages d'erreurs du style
... is no valid email address in the basic format local-part@hostname
ou
Value is required and can't be empty
Y-a-t-il une solution pour changer cela vers des messages personnalisés ou directement traduits en FR ?
Pour le moment je modifie le fichier dans ZEND/Validate bon je sais que c'est pas la bonne solution...
Merci
Hors ligne
Bonjour,
Google.fr non?
Dernière modification par shadypierre (12-04-2011 17:14:40)
Hors ligne
Zenkken a écrit:
Bonjour,
Je suis en train d'apprendre à réaliser des formulaires et me retrouve actuellement avec des messages d'erreurs du styleCode:
... is no valid email address in the basic format local-part@hostnameou
Code:
Value is required and can't be emptyY-a-t-il une solution pour changer cela vers des messages personnalisés ou directement traduits en FR ?
Pour le moment je modifie le fichier dans ZEND/Validate bon je sais que c'est pas la bonne solution...
Merci
Bonjour ;
Dans le package du ZF (full) un fichier resources/languages/fr/Zend_Validate.php contenant toutes les chaînes déjà traduites est fournis. Après, pour ce qui est de l'utilisation, il vous suffit de consulter la documentation officielle. Si vous ne trouvez pas, nous vous aiderons d'avantage.
Cordialement ;
Hors ligne
shadypierre si c'était si facile je demanderais pas Y'a une multitude de docs/tuto/messages de forums mais bon nombre sont totalement obsolètes sur certains composants ZF...
Merci nuxwin j'ai réussi à bricoler ça
Hors ligne
Zenkken a écrit:
shadypierre si c'était si facile je demanderais pas
Y'a une multitude de docs/tuto/messages de forums mais bon nombre sont totalement obsolètes sur certains composants ZF...
Pas de probleme, si je dis ça c'est juste qu'en effectuant une recherche les 3 premiers liens retourné me semblait pertinent. Content que tu ai reussi à t'en sortir
Hors ligne
shadypierre a écrit:
Zenkken a écrit:
shadypierre si c'était si facile je demanderais pas
Y'a une multitude de docs/tuto/messages de forums mais bon nombre sont totalement obsolètes sur certains composants ZF...
Pas de probleme, si je dis ça c'est juste qu'en effectuant une recherche les 3 premiers liens retourné me semblait pertinent. Content que tu ai reussi à t'en sortir
Ah mais oui j'en suis bien conscient c'est souvent le cas d'ailleurs mais je te certifie qu'en général je cherche avant de demander enfin je suis "débutant" côté ZF donc il est vrai que je m'y perds "vite" et que je préfère en ce moment demander afin d'avoir des conseils/remarques précis et à jour ^^
Bref c'est réglé ! ^^
Hors ligne
Bonjour,
Je suis intéressé par ta solution !
J'ai beaucoup cherché et plusieurs possibilités sont proposées dans divers tutos...
Mais beaucoup de solutions n'utilisent pas le ZF full et proposent de créer un fichier de langue personnalisé.
Avec la version 1.11 full un fichier pré-traduit existe
/usr/share/php/zend-framework/resources/languages/fr/Zend_Validate.php
Je voulais donc l'utiliser mais je n'y arrive pas, voici mon code :
1) application.ini
[lang=php]resources.translate.registry_key = "Zend_Translate" resources.translate.data = "/usr/share/php/zend-framework/resources/languages" resources.translate.locale = "fr" resources.translate.adapter = "Array" resources.translate.scan = Zend_Translate::LOCALE_DIRECTORY resources.translate.options.scan = "directory"
2) le controller (extends Zend_Controller_Action)
[lang=php]public function myAction(){ $data['champ1']=$this->getRequest()->getParam('champ1'); $data['champ2']=$this->getRequest()->getParam('champ2'); $filters = array( 'champ1' => 'StripTags', 'champ2' => 'StripTags', ); $validators = array( 'champ1' => 'NotEmpty', 'champ2' => 'NotEmpty' ); $box = new Zend_Filter_Input($filters,$validators); // filtrage et validation de toutes les entrées $box->setData($data); if ($box->isValid()){ // Actions }else{ $translate=Zend_Registry::get("Zend_Translate"); $box->setTranslator($translate); $msg=$box->getMessages(); var_dump($msg); } }
Mon problème est que j'obtiens ce Message de la validation du formulaire :
["isEmpty"]=> "You must give a non-empty value for field 'champ1'
Alors que dans le fichier de traduction le message est le suivant :
["Value is required and can't be empty"]=> "Cette valeur est obligatoire et ne peut être vide"
Ces deux messages n'ont pas de clé commune, je ne vois donc pas comment la traduction pourrait fonctionner... A vrai dire je suis un peu perdu sur ce coup là !
Merci d'avance de votre aide.
Dernière modification par loic (25-08-2011 13:53:20)
Hors ligne
up... quelqu'un ???
Hors ligne
Bonjour à tous,
Je me pose cette même question sur Zendframework 2...
Les traductions avec les fichiers .mo se passe bien, mais les variables de validation ... je n'ai pas trouvé ?
Voici le tableau que j'utilisais sur ZendFramework 1, mais il semble ne pas fonctionner sur le 2...
return array( 'notAlnum' => "'%value%' ne contient pas que des lettres et/ou des chiffres.", 'notAlpha' => "'%value%' ne contient pas que des lettres.", 'notBetween' => "'%value%' n'est pas compris entre %min% et %max% inclus.", 'notBetweenStrict' => "'%value%' n'est pas compris entre %min% et %max% exclus.", 'dateNotYYYY-MM-DD'=> "'%value%' n'est pas une date au format AAAA-MM-JJ (exemple : 2000-12-31).", 'dateInvalid' => "'%value%' n'est pas une date valide.", 'dateFalseFormat' => "'%value%' n'est pas une date valide au format JJ/MM/AAAA (exemple : 31/12/2000).", 'notDigits' => "'%value%' ne contient pas que des chiffres.", 'emailAddressInvalid' => "'%value%' n'est pas une adresse mail valide selon le format adresse@domaine.", 'emailAddressInvalidFormat' => "'%value%' n'est pas une adresse mail valide.", 'emailAddressInvalidHostname' => "'%hostname%' n'est pas un domaine valide pour l'adresse mail '%value%'.", 'emailAddressInvalidMxRecord' => "'%hostname%' n'accepte pas l'adresse mail '%value%'.", 'emailAddressDotAtom' => "'%localPart%' ne respecte pas le format dot-atom.", 'emailAddressQuotedString' => "'%localPart%' ne respecte pas le format quoted-string.", 'emailAddressInvalidLocalPart' => "'%localPart%' n'est pas une adresse individuelle valide.", 'notFloat' => "'%value%' n'est pas un nombre décimal.", 'notGreaterThan' => "'%value%' n'est pas strictement supéeur à %min%'.", 'notInt'=> "'%value%' n'est pas un nombre entier.", 'notLessThan' => "'%value%' n'est pas strictement inférieur à %max%'.", 'isEmpty' => "Ce champ est vide : vous devez le compléter.", 'stringEmpty' => "Ce champ est vide : vous devez le compléter.", 'regexNotMatch' => "'%value%' ne respecte pas le format '%pattern%'.", 'stringLengthTooShort' => "'%value%' fait moins de %min% caractères.", 'stringLengthTooLong' => "'%value%' fait plus de %max% caractères.", 'hostnameInvalidHostname' => "'%value%' n'est pas un nom d'hôte valide.", 'hostnameInvalidLocalName' => "'%value%' n'est pas un nom d'hôte local valide.", 'hostnameCannotDecodePunycode' => "'%value%' semble être un DNS hostname mais le punycode ne peut pas être traduit", 'hostnameInvalid' => "Valeur invalide. Chaine de caractère attendue", 'hostnameDashCharacter' => "'%value%' semble être un DNS hostname, mais contient un tiret(élan) dans une position invalide", 'hostnameInvalidHostnameSchema' => "'%value%' semble être un DNS hostname, mais ne peut pas correspondre a un schéma hostname pour TLD '%tld%'", 'hostnameInvalidUri' => "'%value%' ne semble pas être une URI valable", 'hostnameIpAddressNotAllowed' => "'%value%' semble être une adresse IP, mais on ne permet pas d'adresses IP", 'hostnameLocalNameNotAllowed' => "'%value%' semble être un nom de réseau local mais on ne permet pas de noms de réseau locaux", 'hostnameUndecipherableTld' => "'%value%' semble être un DNS hostname, mais ne peut pas extraire la partie TLD", 'hostnameUnknownTld' => "'%value%' semble être un DNS hostname, mais ne peut pas correspondre à TLD de la liste connue" );
Dernière modification par lathenor (07-01-2013 23:35:45)
Hors ligne
Pages: 1