i18n没有处理自定义错误页面

时间:2014-09-16 07:03:48

标签: symfony twig

我已经在app / Resources / TwigBundle / views / Exception中为错误页面创建了模板。但我在这些页面上的翻译存在问题,即

<h3>{{ 'error_page.404.header'|trans({}, 'ProjCoreBundle') }}</h3>

不工作。我的翻译在src / Proj / CoreBundle / Resources / translations / ProjCoreBundle。%lang%.yml,其中%lang%表示区域设置(即&#34; en&#34;),它们在其他页面上正常工作。什么可能导致问题。

1 个答案:

答案 0 :(得分:0)

您需要在正确的目录中进行必要的覆盖。在这种情况下,在顶级目录app/Resources/TwigBundle/translationsapp/Resources/translations文件夹中(请参阅http://symfony.com/doc/current/book/translation.html#translation-resource-file-names-and-locations)。

  

Symfony在下面查找消息文件(即翻译)   位置:

     
    
        
  • app / Resources / translations目录;

  •     
  • app / Resources //翻译目录

  •     
  • 任何包内的Resources / translations /目录。

  •     
  
     

此处列出的位置最高   优先考虑。也就是说,您可以覆盖翻译消息   前两个目录中的任何一个包。

要在自己的内部使用另一个包的覆盖部分,您需要从第二个包继承您的包: 见http://symfony.com/doc/current/cookbook/bundles/inheritance.html

class AcmeUserBundle extends Bundle
{
    public function getParent()
    {
        return 'FOSUserBundle';
    }
}
  

通过进行这种简单的更改,您现在可以覆盖其中的几个部分   FOSUserBundle只需创建一个具有相同名称的文件即可。

此外,如果您正在使用Symfony 2.5,请参阅此版本中引入的调试机制。