我正在尝试使用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
中翻译