serviceContainer returns symfony 2.8 中的 IdentityTranslator

serviceContainer returns an IdentityTranslator in symfony 2.8

我正在尝试使用 translation 组件,但无法正确获取和使用它。

当我请求/testT:

namespace Codechick\Test2Bundle\Controller;

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

我得到的是这样的:

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

因此,没有翻译。这是为什么?这是我的配置(我的 _dev conf 中没有覆盖):

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

根据news announcement,从2.6版本开始翻译器组件被定义为类似translator.default的服务。

所以更改您的代码:

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

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

希望对您有所帮助