_locale
我实现了小图标在语言之间切换并返回到同一页面,但我被新的 Symfony2.2行为卡住了。
<a class="lang" href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'fr'})) }}">
<img src="{{ asset('bundles/fuzlayout/images2/locale_fr.png') }}" title="Français" alt="Français" />
</a>
<a class="lang" href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'en'})) }}">
<img src="{{ asset('bundles/fuzlayout/images2/locale_en.png') }}" title="English" alt="English" />
</a>
这显示:
如果我在我的网站上的任何地方单击一个语言环境,这没关系,因为所有路由都采用著名的_locale
参数,例如,如果我在以下页面中:
fuz_home_test:
pattern: /{_locale}/test
defaults: { _controller: FuzHomeBundle:Default:test }
requirements:
_locale: fr|en
以下路由生成的 URL 将是/fr/test
或/en/test
。
但是,我的主页不能有_locale
参数:
fuz_home:
pattern: /
defaults: { _controller: FuzHomeBundle:Default:index }
如果我输入一个默认参数,例如:
fuz_home:
pattern: /{_locale}
defaults: { _controller: FuzHomeBundle:Default:index, _locale: %locale% }
requirements:
_locale: fr|en
默认情况下,Symfony 将使用备用语言环境而不是用户原始语言环境。
所以我的问题是:如何创建多语言主页?