Symfony2=>;细枝布局不';不翻译

Symfony2=>;细枝布局不';不翻译,symfony,twig,translation,Symfony,Twig,Translation,我正在翻译我的Symfony2网站,它似乎工作良好,除了布局。。。我的模板扩展了layout.html.twig,它包含一个翻译过的菜单。当我使用法语时,一切正常(这是我的默认区域设置),但当我切换到英语时,菜单将保持法语,页面的其余部分(包含在我的模板中)将翻译为英语。有人知道发生了什么吗 模板(services.html.twig) 布局(Layout.html.twig) messages.en.yml menu: accueil: Home services: Servi

我正在翻译我的Symfony2网站,它似乎工作良好,除了布局。。。我的模板扩展了layout.html.twig,它包含一个翻译过的菜单。当我使用法语时,一切正常(这是我的默认区域设置),但当我切换到英语时,菜单将保持法语,页面的其余部分(包含在我的模板中)将翻译为英语。有人知道发生了什么吗

模板(services.html.twig)

布局(Layout.html.twig)

messages.en.yml

menu:
    accueil: Home
    services: Services
    reservation: "Book online"
    contact: "Contact us"

谢谢大家!

我可以使用其中一种翻译,但不能使用另一种,我不知道为什么。如果你在翻译方面也有困难,请阅读此文

第一,标准清单:

  • 确保
  • 确保并遵循(域(默认为消息).lang\u code.file\u格式)
  • 使用
    php应用程序/控制台缓存:Clear
    命令清除缓存
  • 尝试手动调用
    $this->getRequest()->setLocale('en')$this->get('translator')->trans('Some message')直接在控制器中
  • 如果仍然不起作用,请确保BOM表不在翻译的文件中。这就是我的情况
注意翻译文件中的错误。翻译yml文件的翻译人员使用UTF8,这是可以的,但他在文件的开头使用了LEVED BOM。这很危险,可能是因为它在文件的第一部分添加了一些不可见的字符

顺便说一句,可能也很有帮助


顺便说一句,很抱歉发送了两次此答案,但我还无法评论并链接到原始问题:)

如何定义用户区域设置?在模板中尝试
{{dump(app.request.locale)}}
以查看存在哪个区域设置。我已经这样做了,甚至在我的布局中它也转储“en”。。。但它是用法语翻译的:/I我在我的路线中定义了我的地区。如果您刚刚创建了
消息.en.yml
文件,您必须清除缓存才能让Symfony发现它。错误难道不能仅仅是
联机丛书
联系我们
周围的引号吗?我知道这可能很琐碎,但是的……不,我用引号表示,认为这实际上是问题所在;)他们以前不在那里,我也有同样的错误:(
<div id="menu">
        <a href="{{ path('gsls_app_homepage') }}" class="accueil">{{ "menu.accueil"|trans|raw }}</a> |
        <a href="{{ path('gsls_app_services') }}" class="services">{{ "menu.services"|trans|raw }}</a> |
        <a href="#" class="reservation">{{ "menu.reservation"|trans }}</a> |
        <a href="#" class="contact">{{ "menu.contact"|trans }}</a>
    </div>
menu:
    accueil: Accueil
    services: Services
    reservation: Réservation
    contact: Contactez-nous
menu:
    accueil: Home
    services: Services
    reservation: "Book online"
    contact: "Contact us"