Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous.
Je ne comprend pas trop comment fonctionnent les traductions sous zend.
J'ai lu l'article suivant: http://framework.zend.com/manual/2.0/en … ating.html
J'ai donc vu comment en ajouter avec des filtres ...
mais moi ceux que je voudrai est dans un premier temps définir la locale, soit dans l'url soit en session, j'ai trouvé:
$translator = new Translator();
$translator->setLocale('fr');
mais j'ai toujours mes phrases en anglais.
Apres c'est bien beau de pouvoir en ajouter mais je n'ai pas trouvé comment les lister, les supprimer et les éditer
Merci
Dernière modification par anthebest (11-11-2012 00:27:33)
Hors ligne
Pas beaucoup de réponse,
si vous pensez que ma question manque de recherche pourriez vous me passer un tuto car je n'en trouve pas pour zend2
Hors ligne
Et ça http://framework.zend.com/manual/2.0/en … tions.html ?
J'ai jamais utilisé les traductions, désolé. Mais de mémoire c'est pas très compliqué .
Hors ligne
Merci, mais j'avais déjà lu
je ne l'ai pas indique mais pour la modification ,suppression j'ai trouvé
je cherche juste à savoir comment changer la locale car c'est bien beau un site multilingue mais si on ne peut pas choisir la langue c'est bof
Hors ligne
Tu le défini dans le module config sur la clef : "translator".
Par ex :
'translator' => array( 'locale' => 'fr_FR', 'translation_file_patterns' => array( array( 'type' => 'gettext', 'base_dir' => __DIR__ . '/../language', 'pattern' => '%s.mo', ), ), ),
Edit : ensuite tu change par l'intermédiaire de l'instance de Zend\I18n\Translator\Translator la méthode "setLocale" (valeur récupéré dans les préférence de l'utilisateur par ex).
Dernière modification par Fredy (08-11-2012 14:59:05)
Hors ligne
Merci, quand je change la locale dans le module config ça fonctionne, en revanche si je le fais dans mon controller
<?php namespace Application\Controller; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; use Zend\I18n\Translator\Translator; class IndexController extends AbstractActionController { public function indexAction() { $translator = new Translator(); $translator->setLocale('fr_FR'); return new ViewModel(); } }
la locale reste à en_US
Edit:
<?php namespace Application\Controller; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; use Zend\I18n\Translator\Translator; class IndexController extends AbstractActionController { public function indexAction() { $translator = new Translator(); $translator->setLocale('fr_FR'); return new ViewModel(array('locale' => $translator->getLocale())); } }
ça retourne bien fr_FR mais les traductions ne changent pas.
Dernière modification par anthebest (09-11-2012 09:59:58)
Hors ligne
En fait, les composants utilisant la traduction implémentent l'interface TranslatorAwareInterface. En interne, un initializer est ajouté et dès qu'une classe implémente cette interface est trouvée, ZF 2 va tenter de récupérer l'élément "translator" du service manager.
Or, là, tu créés un nouvel objet Translator. La solution, c'est de récupérer le translator existant du service manager, et de changer la locale. Ainsi, dans ton contrôleur :
$translator = $this->getServiceLocator()->get('translator'); $translator->setLocale('fr_FR');
De ce fait, le reste du framework utilisera le même translator que celui que tu viens de modifier.
Hors ligne
ça marche super
merci à tous pour l'aide
Hors ligne
bakura a écrit:
En fait, les composants utilisant la traduction implémentent l'interface TranslatorAwareInterface. En interne, un initializer est ajouté et dès qu'une classe implémente cette interface est trouvée, ZF 2 va tenter de récupérer l'élément "translator" du service manager.
Il existe par défaut un élément "translator" du service manager, il n'est pas nécessaire de l'initialiser dans le module.php ?
Hors ligne
Bonjour,
Si il y a par défaut un élément translator. Quel en sont les paramètres par défaut? Configuration du répertoire etc...
Est ce que cela résout le problème de la traduction des messages d'erreur des forms?
Hors ligne