1

我似乎对 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/)并调整它子域,但这似乎也不起作用。

4

0 回答 0