【发布时间】:2015-03-25 09:59:14
【问题描述】:
我在 Symfony2 上有一个网站,翻译成几种语言(例如 en、de、ru、pl)。每个语言版本都设置在它自己的服务器上,所以我有英文版本的服务器,其他的俄语版本等。每个语言版本都设置为该语言版本。我还需要将路由翻译成该语言,所以我使用https://github.com/BeSimple/BeSimpleI18nRoutingBundle,它几乎可以满足我的需求。当翻译中出现“冲突”时问题就开始了,例如德语版本有路由/kontakt,波兰语版本有路由/kontakt,但路由总是会“捕获”首先配置的路由并将我的网站语言更改为它。例如,如果我有:
contact:
locales: { de: "/kontakt", pl: "/kontakt" }
defaults: { _controller: MyBundle:Frontend:contact }
我将始终被重定向到网站的德语版本,并且区域设置将更改为 de(并且将为德语版本生成每个链接)。
由于我在自己的服务器上拥有每种语言版本,有没有办法强制 symfony 只使用一种语言版本的路由? 在我的情况下,也许有更好的方法来配置整个路由?
【问题讨论】:
-
您的网站有任何“前缀”吗?示例:
http://yourdomain.com/de/、http://yourdomain.com/en/、http://yourdomain.com/pl等等? -
不,我在它自己的域上拥有每个版本,例如domain.pl、domain.de、domain.com
-
管理多域网站我总是使用优秀的multisite-bundle