Php Symfony翻译网站并查看语言列表

Php Symfony翻译网站并查看语言列表,php,symfony,twig,translation,Php,Symfony,Twig,Translation,你好我来是因为我需要一些帮助, 我想把我的网站翻译成3种语言:en,fr,es 我翻译了翻译文件中的所有内容,但问题不在于如何在网站上显示语言选择,也不在于如何在url中显示语言选择 在我的应答器html中: <html lang="{{ app.request.locale }}"> 在我的翻译文件中,我有3个这样的文件: messages.fr.yml messages.en.yml messages.es.yml 我想显示一个像这样的URL www.mydomaine.co

你好我来是因为我需要一些帮助, 我想把我的网站翻译成3种语言:en,fr,es 我翻译了翻译文件中的所有内容,但问题不在于如何在网站上显示语言选择,也不在于如何在url中显示语言选择

在我的应答器html中:

<html lang="{{ app.request.locale }}">
在我的翻译文件中,我有3个这样的文件:

messages.fr.yml
messages.en.yml
messages.es.yml
我想显示一个像这样的URL

www.mydomaine.com/fr/accueil
www.mydomaine.com/en/home
www.mydomaine.com/es/acogida

如何显示链接列表?对它来说是语言?

好吧,下面的解决方案在symfony 3.4上进行了测试,对于symfony 4.*版本来说可能有点不同

在您的
config.yml
设置中,所有语言站点将在参数选项下运行,如下所示:

parameters:
    locale: fr
    locales: [en, fr, es]
再次在
config.yml
中设置翻译的备用语言环境和路径:

framework:
    translator:
        fallback: "%locale%"
        paths: ['%kernel.root_dir%/../src/AppBundle/Resources/translations']
然后以这种方式定义路由(yml定义示例):

然后所有人都可以使用您提供的每个语言环境访问您的主页(回答如何在url中显示语言的问题)

现在,如果问题也是关于如何在您的网站页面上获取翻译内容-您可以使用不同的文件格式来保存翻译,我将再次以
.yml
为例。通常将翻译放在文件中,如
messages.en.yml
(对于其他语言,使用不同的语言环境创建相同的文件,例如
messages.fr.yml

然后,假设您的翻译文件中有一个键
foo
,例如
foo:bar
,您可以使用
trans
filter:
{{foo'| trans({},'messages')}}}}
在细枝中显示其值


您可以在

中找到更多信息,我必须在所有路线中放置区域设置,就这样?
framework:
    translator:
        fallback: "%locale%"
        paths: ['%kernel.root_dir%/../src/AppBundle/Resources/translations']
home:
    path:     /{_locale}/home
    defaults: { _controller: AppBundle:Default:home }
www.mydomaine.com/fr/home
www.mydomaine.com/en/home
www.mydomaine.com/es/home