繁体   English   中英

错误页面Symfony2与语言环境

[英]Error pages Symfony2 with locale

我正在尝试在Symfony2上翻译404页面,但它不起作用。 有500个错误页面,效果很好。

例如,当我尝试访问该页面时:/ es / not-found它显示404页面,但是当我访问/ en / not-found时,它给了我SAME页面,虽然我已经将错误消息翻译在我的消息-en.yml。

它似乎总是访问messages-es.yml文件,因为我已经使用这个默认语言环境配置了Symfony。

如果我在我的Twig模板上打印{{app.request.locale}},它就不会给我任何东西。

我清理了几次缓存,是的:)。

提前致谢!

如果本地化配置正常工作,您应该能够在Twig上打印语言环境。 有这样的事情:

{% if app.request.locale == 'en' %}
    English 404 message
{% else %}
    Other 404 message
{% endif %}

如果您的Symfony版本低于2.1,则必须使用app.session.locale而不是app.request.locale

不过,总是创建自定义404和您需要的任何其他错误页面是一个很好的做法

http://symfony.com/doc/current/cookbook/controller/error_pages.html

最强大的方法是使用此方法:

用您自己的控制器替换默认的异常控制器twig.controller.exception:showAction,并根据需要处理它(请参阅Twig参考中的exception_controller)。 默认的异常控制器注册为服务 - 实际的类是Symfony \\ Bundle \\ TwigBundle \\ Controller \\ ExceptionController。

这样,您甚至可以为每个国家/地区设置不同的模板。

亲切的问候。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM