Translator :: getMessages返回一个空数组

时间:2015-12-17 15:24:59

标签: symfony translation symfony-2.8

我正在尝试在translator.default中使用Controller服务,但是我试图通过trans方法翻译的任何消息都会返回未翻译的密钥。

/**
 * @Route("/testT")
 */
public function testTAction(Request $req)
{
    $translator = $this->get('translator.default');
    $translated = $translator->trans('Hello from the other side');
    die(dump($translated));
}

为了确保我的钥匙已正确装入,我已完成以下检查:

php app/console translation:update it --dump-messages

输出以下内容:

Translation Messages Extractor and Dumper
=========================================

 // Generating "it" translation files for "app folder"
 // Parsing templates...
 // Loading translation files...

Messages extracted for domain "messages" (1 messages)
-----------------------------------------------------

 * Hello from the other side


 [OK] 1 messages were successfully extracted    

我的密钥存储在<root>/app/resources/translations/messages.it.yml下 和我的语言环境,在请求翻译的密钥时设置得很好:

    $translator = $this->get('translator.default');
    die(dump($translator->getLocale()));

如果在我的控制器中调用,则会生成以下输出:“it”,我认为这是正确的。那么:我哪里错了?

修改

这是我的<root>/app/Resources/translations/messages.it.yml

Hello from the other side: Ciao dall'altra parte

以下是我<root>/app/config/config.yml

中与翻译服务相关的块
framework:
    translator: { fallbacks: it }

我正在使用dev配置,但没有任何内容与那里的翻译有关。

1 个答案:

答案 0 :(得分:0)

创建新的messages.it.yml文件后,您是否清除了缓存?

我已经想到翻译显示为“未找到”,即使我确定它在那里。清除缓存后,它通常可以正常工作。

同样在将来,您可以在app_dev下运行并检查分析器以查看找到的消息和丢失的消息,如下所示:

Profiler toolbar with translations

当您点击翻译图标时,您会看到一个包含如下列表的屏幕:

enter image description here