Php Symfony2:如何设置默认语言环境和不区分大小写的翻译

Php Symfony2:如何设置默认语言环境和不区分大小写的翻译,php,symfony,translation,locale,multilingual,Php,Symfony,Translation,Locale,Multilingual,我刚刚开始使用symfony2,面临一些困难,需要像你们这样的专家的帮助 问题1:如何设置默认区域设置和备用区域设置,以便人们尝试点击类似www.example.com/home或www.example.com/fr/home(不支持区域设置)的内容时重定向到www.example.com/cn/home? 我从symfony2文档()中读了很多东西,也在谷歌上搜索过,但我仍然无法让它正常工作。不仅默认区域设置不起作用,后备区域设置也不起作用。例如,当用户尝试输入我的应用程序不支持的www.ex

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

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

我从symfony2文档()中读了很多东西,也在谷歌上搜索过,但我仍然无法让它正常工作。不仅默认区域设置不起作用,后备区域设置也不起作用。例如,当用户尝试输入我的应用程序不支持的www.example.com/fr/home时,它假定将用户重定向到www.example.com/cn/home,但它没有这样做

我也试图清除缓存,但它似乎不起作用

问题2:如何在不区分大小写的情况下匹配翻译键?

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

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

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

以下是我的应用程序文件供您参考:

翻译文件:

参数文件:

配置文件:

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

树枝文件:

这是我击球时的结果

  • localhost/locale/web/app_dev.php/
  • localhost/locale/web/app_dev.php/en
  • localhost/locale/web/app_dev.php/cn
  • localhost/locale/web/app_dev.php/fr

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

     $this->container->get('request_stack')->getCurrentRequest()->setLocale($locale);
    
    您可以使用请求侦听器为每个请求设置语言环境:

    对于第二个问题,您可以将转换添加到小写:

       {{ 'WELCOME'|lower | translate}}
    
    或者,您可以创建自己的自定义细枝扩展,用于进行翻译和其他工作:

       {{ 'WELCOME'|lower | translate}}