Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour
Comment faire pour que els erreurs des formulaires soient en francais svp?
Il y a bien le zend_validate.php mais je n'ai pas trouvé ou et comment l'activé ?
Dans le tuto, il activele .mo qui se trouve dans le dossier language dans le fichier module.config.php
J'ai essayé de faire pareil mais en vain
[lang=php] 'translator' => array( 'locale' => 'fr_FR', 'translation_file_patterns' => array( array( 'type' => 'phparray', 'base_dir' => __DIR__ . '/../language', 'pattern' => '%s.php', ), ), ),
Comment faire svp?
Merci
Hors ligne
il faut que tu attaches ton translator aux validateurs de formulaire, par exemple dans ton module.php
public function onBootstrap(EventInterface $e) { // Set the translator for default validation messages $translator = $e->getApplication()->getServiceManager()->get('translator'); AbstractValidator::setDefaultTranslator($translator); }
A ton service
Hors ligne
Oui merci c'est bien ça. Il ne faut pas oublier de copier le dossier fr de zend dans vore dossier langage du module aussi.
[lang=php] 'translator' => array( 'locale' => 'fr_FR', 'translation_files' => array( array( 'type' => 'phparray', 'filename' => __DIR__ . '/../language/fr/Zend_Validate.php', ), ), ),
Par contre est ce possible d'avoir 2 fichiers? car la il ne prends plus en compte le fr_FR.mo .
Ou y a t'il un moyen d'activer le zend_validate et avoir son fichier fr_FR.mo ?
ou un moyen de concatener les deux fichiers?
Merci
Hors ligne
Essaies de faire 2 array à la suite, le premier avec le type phparray et un autre avec le type gettext
Hors ligne
Oui j'ai bien essayé de faire cela, mais il prends pas en compte le php.
J'ai même tester un 'translation_files' puis un "''translation_files_pattern' en dessous.
J'ai aussi vu sur un forum la fonction :
$translator->addTranslationFile('phpArray', __DIR__ . '/language/fr/Zend_Validate.php', 'default', 'fr_FR');
Mais toujours pareil il n'en prends qu'un en compte.
Hors ligne
J'ai eu le même souci, je n'ai pas réussit à charger deux types de fichier de traduction.
Je n'ai pas insisté sur les recherche car je n'utiliserait que les phparray mais ça serait intéressant de connaitre la solution.
Hors ligne
oui c'est normal il ne prend en compte que celui de la locale active si tu lui en passes plusieurs.
Pourquoi voudrais tu avoir plusieurs traductions simultanées ?
Hors ligne
Ok merci.
Ce n'est pas vraiment le fait d'avoir plusieurs fichiers de traductions. C'est plus dans le cas d'avoir son fichier .mo normal et de pouvoir activer les traductions déjà faite dans zend_validate.php pour les formulaires
Peut être y a t'il un autre moyen d'activer ce fichier ?
Ou de concaténer ce fichier .php et le .mo?
Hors ligne
Bonsoir à tous,
La structure modulaire de ZF2 est très intéressante, mais comment faire pour indiquer au translator où sont situés les différents fichiers de traduction ? Dans mon cas, je suis en langue unique, 100% français.
Dans l'exemple ci-dessous, la configuration est correcte (et fonctionne) pour le Zend Skeleton et le module ZFC User, par contre, elle ne fonctionne pas pour les messages de zend_validate (du module ZFCUSER).
Je vois deux possibilités :
1) ZFCUSER ne traduit pas les messages issus de zend_validate
2) j'ai une erreur dans mon fichier de config, notamment le chemin vers les fichier zend_validate.php
Une idée ?
'translator' => array( 'locale' => 'fr_FR', 'translation_file_patterns' => array( array( // Translation for ZendForm (Zend Validate) 'type' => 'phpArray', 'base_dir' => './vendor/zendframework/zendframework/resources/languages', 'pattern' => '%/Zend_Validate.php', ), array( //translation for Zend Skeleton 'type' => 'gettext', 'base_dir' => __DIR__ . '/../language', 'pattern' => '%s.mo', ), array( // translation for ZFCUSER module 'type' => 'gettext', 'base_dir' => './vendor/zf-commons/zfc-user/src/ZfcUser/language', 'pattern' => '%s.mo', ), ), ),
Merci par avance,
Jean
Dernière modification par jean (02-09-2014 16:54:04)
Hors ligne
OK, résolu.
Comme je n'ai pas réussi à faire la configuration des différents fichiers de langue (Skzleton, ZfcUser, Zend_Validate...) dans un fichier de configuration "array", j'ai tout mis dans le fichier module.php du module Application.
Pour information, depuis ZF2 2.2, la configuration du translator a évolué par rapport aux précédents billets de ce post.
<?php /** /module/Application/module.php */ namespace Application; use Zend\Mvc\ModuleRouteListener; use Zend\Mvc\MvcEvent; // translator use Zend\I18n\Translator\Translator; use Zend\Validator\AbstractValidator; class Module { public function onBootstrap(MvcEvent $e) { $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); // Adding translators $translator = $e->getApplication()->getServiceManager()->get('translator'); // Zend_Validate translator $translator->addTranslationFile( 'phpArray', 'vendor/zendframework/zendframework/resources/languages/fr/Zend_Validate.php', 'default', 'fr_FR' ); // Zend_Captcha translator $translator->addTranslationFile( 'phpArray', 'vendor/zendframework/zendframework/resources/languages/fr/Zend_Captcha.php', 'default', 'fr_FR' ); // SkeletonApplication translator $translator->addTranslationFile( 'gettext', 'module/Application/language/fr_FR.mo', 'default', 'fr_FR' ); // ZfcUser translator $translator->addTranslationFile( 'gettext', 'vendor/zf-commons/zfc-user/src/ZfcUser/language/fr_FR.mo', 'default', 'fr_FR' ); \Zend\Validator\AbstractValidator::setDefaultTranslator(new \Zend\Mvc\I18n\Translator($translator)); } public function getConfig() { return include __DIR__ . '/config/module.config.php'; } public function getAutoloaderConfig() { return array( 'Zend\Loader\StandardAutoloader' => array( 'namespaces' => array( __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, ), ), ); } }
Hors ligne