我似乎对 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: /
即使我使用此处描述的子域侦听器(并将其调整为 Symfony2.2),我也只能在 Controller 中设置 _locale。不知何故,Twig 获得了与控制器不同的语言环境
<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/)并调整它子域,但这似乎也不起作用。