Translator::getMessages返回空数组 [英] Translator::getMessages returns an empty array

查看:16
本文介绍了Translator::getMessages返回空数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试在Controller中使用translator.default服务,但我尝试通过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配置,但与那里的转换无关。

推荐答案

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

我已经遇到过这样的情况:翻译显示为"找不到",即使我确定它在那里。清除缓存后,它可以正常工作。

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

当您点击翻译图标时,您应该会看到一个屏幕,其中的列表如下:

这篇关于Translator::getMessages返回空数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆