gpt4 book ai didi

php - Symfony2 : How to set default locale and case insensitive translation

转载 作者:可可西里 更新时间:2023-10-31 23:47:29 27 4
gpt4 key购买 nike

我刚刚开始使用 symfony2,遇到一些困难需要像你们这样的专家的帮助。

问题 1:如何设置默认区域设置和后备区域设置,以便人们尝试点击 www.example.com/home 或 www.example.com/fr/home(不支持的区域设置)之类的内容时会重定向到 www.example.com/cn/home?

我已经从 symfony2 文档 ( http://symfony.com/doc/current/book/translation.html ) 中阅读了很多内容,也在谷歌上进行了搜索,但我仍然无法使其正常工作。不仅默认语言环境不起作用,后备语言环境也不起作用。例如,当用户尝试输入我的应用程序不支持的 www.example.com/fr/home 时,它​​应该将用户重定向到 www.example.com/cn/home 但它没有这样做。

我也尝试清除缓存,但似乎不起作用。

问题二:不区分大小写如何匹配翻译键?

比如我的翻译文件中(“message.cn.yml”)包含

Welcome: 欢迎

所以在我的 Twig 模板中,我使用 {{ 'Welcome' | trans }} 它将帮助我转换为欢迎但是当我使用 {{ 'welcome' | trans }} 它不会转换。有没有办法让它不区分大小写,这样我就不需要特意在message.cn.yml文件中添加“welcome:欢迎”键。

非常感谢您的帮助和建议。谢谢。

以下是我的应用文件供您引用:

翻译文件:

enter image description here

参数文件:

enter image description here

配置文件:

enter image description here

特定包中的路由文件(“Acme/DemoBundle”):

enter image description here

Twig 文件:

enter image description here

这是我点击的结果

  1. localhost/locale/web/app_dev.php/

enter image description here

  1. localhost/locale/web/app_dev.php/en

enter image description here

  1. localhost/locale/web/app_dev.php/cn

enter image description here

  1. localhost/locale/web/app_dev.php/fr

enter image description here

最佳答案

您可以为请求设置语言环境:

 $this->container->get('request_stack')->getCurrentRequest()->setLocale($locale);

并且您可以使用请求监听器为每个请求设置语言环境: http://symfony.com/doc/current/cookbook/service_container/event_listener.html#request-events-checking-types

对于你的第二个问题,你可以添加转换为小写:

   {{ 'WELCOME'|lower | translate}}

或者您可以创建自己的自定义 twig 扩展,它在两者之间进行翻译和其他工作: http://symfony.com/doc/current/cookbook/templating/twig_extension.html

关于php - Symfony2 : How to set default locale and case insensitive translation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29453951/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com