2015-12-17 1 views
3

J'essaie d'utiliser le composant translation mais je ne peux pas l'obtenir - et l'utiliser - correctement.serviceContainer renvoie un IdentityTranslator dans symfony 2.8

Lorsque je demande/Testt:

namespace Codechick\Test2Bundle\Controller; 

class DefaultController extends Controller 
{ 
    /** 
    * @Route("/testT") 
    */ 
    public function testTAction(Request $req) 
    { 
     die(var_dump($this->get('translator'))); 
    } 
} 

Ce que je reçois est le suivant:

object(Symfony\Component\Translation\IdentityTranslator)[203] 
    private 'selector' => 
    object(Symfony\Component\Translation\MessageSelector)[202] 
    private 'locale' => string 'it' (length=2) 

donc, rien est en cours de traduction. Pourquoi donc? Voici ma configuration (il n'y a pas Remplacements dans mon _dev): conf

#<root>/app/config/config.yml 
framework: 
    translator: { fallbacks: [it,en] } 
+0

Est-il censé traduire '' il s' à en'? Quel est le problème? –

+0

Il était supposé traduire à partir de la clé. Sinon à en si elle n'est pas disponible – Bertuz

Répondre

0

En fonction de la news announcement, à partir de la version 2.6 du composant traducteur est défini comme service comme translator.default.

donc changer votre code:

die(var_dump($this->get('translator'))); 

avec

die(var_dump($this->get('translator.default'))); 

Hope this aide

+0

Cela résolvait définitivement le problème d'obtenir une instance de Translator, mais quand je tente de sortir la clé traduite, rien ne semble être traduit. J'ai essayé de chercher quelque chose dans le journal (comme un avertissement, selon la documentation) mais rien sur le traducteur ne semble être enregistré. Aucune suggestion? – Bertuz

+0

De plus, je pense que la documentation se réfère toujours à 'translator' à la place de' translator.default'. http://symfony.com/doc/2.8/book/translation.html#basic-translation pensez-vous que c'est valide de toute façon? – Bertuz

+0

Bonjour @Bertuz vous pouvez vérifier que vous avez correctement configuré les messages avec la commande 'translation: update' en l'exécutant comme exemple,' app/console traduction: mettre à jour --dump-messages' – Matteo