首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Symfony翻译网站并查看语言列表

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

Stack Overflow用户
提问于 2018-08-26 22:18:00
回答 1查看 941关注 0票数 1

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

在我的应答器html中:

代码语言:javascript
复制
<html lang="{{ app.request.locale }}">

和我的paramters.yaml:

代码语言:javascript
复制
parameters:
    locale: fr

在我的翻译文件中,我有3个这样的文件:

代码语言:javascript
复制
messages.fr.yml
messages.en.yml
messages.es.yml

我想要显示如下的URL

代码语言:javascript
复制
www.mydomaine.com/fr/accueil
www.mydomaine.com/en/home
www.mydomaine.com/es/acogida

以及如何显示链接列表?走向它的是语言?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-27 03:23:57

好吧,下面的解决方案是在symfony 3.4上测试的,对于symfony 4.*版本可能会有点不同。

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

代码语言:javascript
复制
parameters:
    locale: fr
    locales: [en, fr, es]

同样,在config.yml中,将翻译器备用区域设置和路径设置为您的翻译:

代码语言:javascript
复制
framework:
    translator:
        fallback: "%locale%"
        paths: ['%kernel.root_dir%/../src/AppBundle/Resources/translations']

然后这样定义您的路由(yml定义示例):

代码语言:javascript
复制
home:
    path:     /{_locale}/home
    defaults: { _controller: AppBundle:Default:home }

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

代码语言:javascript
复制
www.mydomaine.com/fr/home
www.mydomaine.com/en/home
www.mydomaine.com/es/home

现在,如果问题也是关于如何在你的网站页面上获得翻译的内容-你可以使用不同的文件格式来保存翻译,例如,我将再次使用.yml。通常将翻译放到像messages.en.yml这样的文件中(对于其他语言,创建具有不同区域设置的相同文件,例如messages.fr.yml)。

然后假设你的翻译文件中有一个关键字过滤器,例如foo: bar,你可以使用trans foo{{ 'foo'|trans({}, 'messages')} }}在细枝中显示它的值。

您可以在official documentation中找到更多信息

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52027109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档