【问题标题】:How to disable translation for a specific symfony route?如何禁用特定 symfony 路由的翻译?
【发布时间】:2017-01-26 11:13:46
【问题描述】:
我正在开发一个国际化的 symfony 应用程序,其中网页的区域设置在 url 中(例如:/en/myaccount 和 /fr/moncompte)。
我想要的是一个自定义网页,我可以在其中看到未翻译的页面,并带有翻译键。此行为不应改变本地化页面的行为。
我尝试添加一个没有翻译文件的语言环境。然而,网站回退到默认语言环境,这会阻止看到翻译键。有没有办法禁用本地化(或特定语言环境的回退?是否可以使用与路由中的语言环境无关的自定义 url?
谢谢!
【问题讨论】:
标签:
php
internationalization
symfony
【解决方案1】:
我建议你使用带有 options={"i18n":"false"} 的路由
然后在你制作类似扩展的语言环境的路径中,你会得到这样的东西
/**
*@Route("/{prefix}/moncompte", methods={"GET"}, options={"i18n":"false"}, requirements={"prefix"="fr|en|ar"})
*/
【解决方案2】:
可以,在路由失败时使用 else(“未找到路由”),然后包含此页面而不是重定向到 404 页面。