我似乎对Symfony2路由中的语言环境和子域模式的某些方面存在误解。
为什么这不起作用?
routing_de:
host: "dev.de.example.com"
resource: "@AcmeDemoBundle/Resources/config/routing_de.yml"
prefix: /
routing_en:
host: "dev.en.example.com"
resource: "@AcmeDemoBundle/Resources/config/routing_en.yml"
prefix: /
此外,我想根据子域设置区域设置。我会假设像这样设置默认语言环境:
routing_de:
host: "dev.{_locale}.example.com"
resource: "@AcmeDemoBundle/Resources/config/routing_{_locale}.yml"
requirements:
_locale: de|en
prefix: /
即使我使用subdomain listener described here(并将其调整为Symfony2.2),我也只能在Controller中设置_locale。不知何故,Twig获得了与Controller不同的语言环境
<a href="{{ path('register', {'_locale': app.request.attributes.get('_locale')}) }} ">Register</a>
将返回en,而
$this->getRequest()->getLocale();
将返回在子域侦听器中设置的默认语言环境。
编辑2013/04/02 我尝试重新实现此解决方案(http://www.ricardclau.com/2011/09/littleweb-a-small-project-in-symfony2-chapter-1-translations/)并针对子域进行调整,但这似乎也不起作用。