2011-11-17 49 views
2

我必须管理一个多语言路由作为Symfony2项目的一部分。 为了得到整个URL翻译我不得不从PHP路由文件访问的EntityManager得到适当的翻译和翻译蛞蝓。如何使用Symfony2访问路由文件上的数据库?

有谁知道该怎么做?

感谢你, 安托万。

+0

为什么你需要从路由访问DB? {slug}不起作用?那么你在DB中搜索slu?? – ManseUK

+0

我想,这不是一个好主意,因为性能低下,从DB每次请求生成路由配置。可能是你应该预先生成路由文件,并每5-15分钟更新一次,例如通过cron? – Casey

+0

@ManseUK {slug}确实有效,但我需要整个翻译过的路线。 示例:/ domain/product/{productSlug_en},/ domain/produkt/{productSlug_de},/ domain/produit/{productSlug_fr}其中“product”,“produkt”和“produit”是存储在数据库中的密钥。 – sload

回答

0

可能是你必须为每个语言分别三级域名(ru.site.com,fr.site.com),并使用你的数据库转换表从模板生成路线?

0

我可以建议你是检查JMSI18nRoutingBundle。这个包允许你定义本地化的路由。这里TA从文档所采取的捆绑概述文本的复制:

概述

该软件包允许您创建国际化的路线。要点:

  • 使用翻译组件;翻译网址就像你会在您的网站翻译任何其他文字
  • 允许您使用每个区域
  • 不同的主机不要求你改变你的开发过程
  • 可以把所有路由是否他们是从三阶未来方捆,或者你自己的应用

我没有使用它自己,我不是这个包的开发人员,我不知道它是否会为你的工作蛞蝓。但我希望这会在某些方面帮助你。

问候,
马特