Symfony 翻译网站并查看语言列表
Symfony translation web site and view the list of languages
你好,我来是因为我需要一点帮助,
我想将我的网站翻译成 3 种语言:en、fr、es
我翻译了翻译文件中的所有内容,但问题不在于如何在网站上显示语言选择以及如何在 url
中显示
在我的应答器中 html :
<html lang="{{ app.request.locale }}">
和我的 paramters.yaml:
parameters:
locale: fr
在我的翻译文件中有 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 定义示例):
home:
path: /{_locale}/home
defaults: { _controller: AppBundle:Default:home }
然后所有人都可以使用您提供的每个语言环境访问您的主页(回答如何在 url 中显示语言的问题)。
www.mydomaine.com/fr/home
www.mydomaine.com/en/home
www.mydomaine.com/es/home
现在,如果问题也是关于如何在您的网站页面上获取翻译内容 - 您可以使用不同的文件格式来保存翻译,我将再次以 .yml
为例。通常将翻译放在 messages.en.yml
之类的文件中(对于其他语言,使用不同的语言环境创建相同的文件,例如 messages.fr.yml
)。
然后假设您的翻译文件中有一个密钥 foo
,例如foo: bar
,您可以使用 trans
过滤器在树枝中显示其值:{{ 'foo'|trans({}, 'messages')} }}
.
中找到更多信息
你好,我来是因为我需要一点帮助, 我想将我的网站翻译成 3 种语言:en、fr、es 我翻译了翻译文件中的所有内容,但问题不在于如何在网站上显示语言选择以及如何在 url
中显示在我的应答器中 html :
<html lang="{{ app.request.locale }}">
和我的 paramters.yaml:
parameters:
locale: fr
在我的翻译文件中有 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 定义示例):
home:
path: /{_locale}/home
defaults: { _controller: AppBundle:Default:home }
然后所有人都可以使用您提供的每个语言环境访问您的主页(回答如何在 url 中显示语言的问题)。
www.mydomaine.com/fr/home
www.mydomaine.com/en/home
www.mydomaine.com/es/home
现在,如果问题也是关于如何在您的网站页面上获取翻译内容 - 您可以使用不同的文件格式来保存翻译,我将再次以 .yml
为例。通常将翻译放在 messages.en.yml
之类的文件中(对于其他语言,使用不同的语言环境创建相同的文件,例如 messages.fr.yml
)。
然后假设您的翻译文件中有一个密钥 foo
,例如foo: bar
,您可以使用 trans
过滤器在树枝中显示其值:{{ 'foo'|trans({}, 'messages')} }}
.