J'ai Zend Framework 3 Application avec le traducteur de travail en utilisant des fichiers po.zf3 modifier les paramètres régionaux en fonction de la sélection de l'utilisateur
Je l'ai configuré comme ça dans mon \ config \ global.php fichier:
'translator' => [
'locale' => 'en_US',
'translation_file_patterns' => [
[
'type' => 'gettext',
'base_dir' => getcwd() . '/data/language/',
'pattern' => '/%s/general.mo',
],
],
],
Quand je change la valeur de la « locale », il fonctionne bien et trouve le fichier .po approprié. Je dois pouvoir définir les paramètres régionaux en fonction de la valeur d'un profil utilisateur enregistrée dans la base de données.
J'ai vérifié la documentation d'ici http://zendframework.github.io/zend-i18n/translation/ et le tutoriel d'ici https://docs.zendframework.com/tutorials/i18n/ mais ils mentionnent simplement la méthode setLocale() sans explication ni exemple. Il ya un fil similaire ici Zend framework 2 : How to set locale globaly? mais c'est pour ZF2 et il ne fournit pas de solution de travail juste quelques suggestions. Pour résumer ma question - comment et où dois-je utiliser la méthode setLocale() afin qu'il soit efficace dans l'ensemble de l'application et $this->translate($message)
dans tous les fichiers de vue utilisera les nouveaux paramètres régionaux plutôt que ceux par défaut utilisés dans le fichier de configuration?
Merci Thomas, cela fonctionne vraiment, je vais essayer avec l'usine aussi, mais j'apprécierai de l'aide avec elle.Je pense qu'il sera plus cohérent d'utiliser les outils du framework quand il y en a. Je donnerai la chance à quelqu'un d'autre de suggérer quelque chose d'autre et si personne ne rentre, je marquerai votre réponse comme «acceptée». Merci encore une fois, – Ivomasterche
Je viens de mettre à jour la réponse un peu ... C'est un peu long IMO, et probablement un peu confus à un moment donné, s'il vous plaît demander plus de détails si nécessaire. –
Merci encore une fois. Je pense avoir l'idée - nous sommes "envelopper" le service de traducteur avec ce délégant, qui devrait être appelé (et définira les paramètres régionaux) chaque fois que '$ this-> translate ($ msg)' est appelé? Malheureusement, je ne peux pas le faire fonctionner, j'ai ajouté la configuration au module.config.php du module Application, et j'ai créé la classe TranslatorFactory dans le fichier /Application/src/Factory/TranslatorFactory.php est-ce tout? – Ivomasterche