Symfony2获取没有语言环境前缀的路由名称

时间:2015-06-10 11:53:02

标签: symfony twig

我正在尝试使用JMSTtranslationBundle和Symfony2.7翻译我的网站。

我正在尝试制作语言切换器。所以我需要获取当前的路由名称,并为其他语言创建新的路由。

{% set route_params = app.request.attributes.get('_route_params') %}
{% set route_params = route_params|merge(app.request.query.all) %}
<ul>
    {% for culture in cultures %}
        {% set route_params = route_params|merge({'_locale': culture.id}) %}
        <li>
            <a href="{{ path(app.request.attributes.get('_route'), route_params) }}">
                {{ culture.name }}
            </a>
        </li>
    {% endfor %}
</ul>

app.request.attributes.get('_ route')应该返回路径名称,例如'homepage',但它会按照'en__RG__homepage'之类的语言环境返回路由前缀。

因此,为每种语言创建的路由与当前语言相同。

可以获取没有此前缀的路由名称吗?

修改

例如,我的主页路由定义是:

homepage:
    pattern:  /
    defaults: { _controller: APPBundle:Default:index }

在我的jms配置中:

jms_i18n_routing:
    default_locale: en
    locales: [en, fr]
    strategy: prefix_except_default

因此,路线会在routes.en.xliff和routes.fr.xliff

中翻译

0 个答案:

没有答案