Comment utiliser traduire aide dans les contrôleurs de zend framework 2
Est-il possible pour traduire des chaînes dans les contrôleurs au lieu de l'afficher?
Droit maintenant, dans mes contrôleurs, si je passe chaînes de caractères comme :
public function indexAction() {
return array('message' => 'example message');
}
Il sera traduit dans l'index.phtml
<?php print $this->translate($message);?>
Il fonctionne bien, mais poeditor incapable de trouver les chaînes à partir de fichiers de contrôleur
Suppose que ce serait cool si je peux utiliser quelque chose comme :
public function indexAction() {
return array('message' => $view->translate('example message'));
}
dans les contrôleurs
Merci d'avance pour l'aide
Aussi, je tiens à traduire les chaînes passées en tant que forme/les attributs de l'élément (titre, alt) etc. La "traduction automatique" est activée uniquement sur la forme de l'élément label dans zf2 🙁 Donc je dois traduire ces chaînes dans la classe de formulaire. Maintenant que je suis de passage traducteur helper dans le formulaire de construire, la prévision n'est pas une bonne façon...
OriginalL'auteur Sanju | 2013-01-09
Vous devez vous connecter pour publier un commentaire.
À utiliser helper de vue du régulateur, vous pouvez utiliser 'getServiceLocator'
Soit vous pouvez utiliser getText de php function ___('my message personnalisé') et ajouter "_" comme sources de mot-clé dans poedit (dans les propriétés du catalogue), de sorte poedit filtrer les chaînes de contrôleur. par exemple:
Et selon votre code, vous pouvez utiliser le helper directement comme ceci
Je préfère la méthode gettext depuis ont besoin de moins d'effort 🙂
OriginalL'auteur webcoder
Vous ne devriez pas utiliser la vue du gestionnaire de plugin pour obtenir le traducteur helper. Prenez le traducteur comme J'ai déjà expliqué ici.
Un copier/coller de ce post:
La traduction est faite par l'intermédiaire d'un
Translator
. Le traducteur est un objet et injectée par exemple dans un helper de vue, donc, si vous appelez ça helper de vue, il utilise le traducteur pour traduire vos chaînes. Pour répondre à cette question je suppose que vous avez configuré le traducteur tout de même que le squelette de l'application.Le meilleur moyen est d'utiliser l'usine à injecter ce qu'une dépendance dans votre contrôleur. Le contrôleur de config:
Et le contrôleur lui-même:
Une alternative est de tirer le traducteur du responsable de service, dans votre action, mais c'est moins souple, moins vérifiables et plus difficile à maintenir:
Dans les deux cas, vous pouvez utiliser
$translator->translate('foo bar baz')
de traduire vos chaînes.c'est la configuration des contrôleurs. Vous pouvez mettre ça dans la module.config.php ou une autre solution est de vous ignorer la
controllers
clé et vous commencez avec lafactories
et les mettre directement dans legetControllerConfig()
méthode dans votreMyModule\Module
classe.Pas de travail? Argument 1 passé à MyModule\Controller\MyController::__construct() doit être une instance de Zend\I18n\Traducteur\Traducteur, aucune donnée,
voir mon autre commentaire. Veuillez commencer une nouvelle question.
OriginalL'auteur Jurian Sluiman
J'utilise pour cela un simple plugin. Puis dans le contrôleur, vous pouvez faire $this->translate('exemple de message');
OriginalL'auteur w2b