Symfony2 路由中的默认语言环境

2024-02-04

我在使用 Symfony2 构建的站点的路由和国际化方面遇到问题。
如果我在routing.yml 文件中定义路由,如下所示:

example: 
    pattern:  /{_locale}/example 
    defaults: { _controller: ExampleBundle:Example:index, _locale: fr } 

它适用于以下 URL:

mysite.com/en/example 
mysite.com/fr/example 

但不适用于

mysite.com/example 

是否只允许在 URL 末尾使用可选占位符?
如果是,显示 url 的可能解决方案是什么:

mysite.com/example  

使用默认语言或将用户重定向到:

mysite.com/defaultlanguage/example 

当他访问时:

mysite.com/example. ? 

我正在尝试解决这个问题,但到目前为止还没有成功。

Thanks.


如果有人感兴趣,我成功地在我的routing.yml不使用其他捆绑包。

现在,这些 URL 可以工作了:

www.example.com/
www.example.com//home/
www.example.com/fr/home/
www.example.com/en/home/

编辑你的app/config/routing.yml:

ex_example:
    resource: "@ExExampleBundle/Resources/config/routing.yml"
    prefix:   /{_locale}
    requirements:
        _locale: |fr|en # put a pipe "|" first

那么,在你app/config/parameters.yml,你必须设置一个区域设置

parameters:
    locale: en

这样,人们就可以访问您的网站,而无需输入特定的区域设置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony2 路由中的默认语言环境 的相关文章

随机推荐