我刚刚开始使用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)中读了很多内容,并且还在google上搜索,但我仍然无法使其正常工作。不仅默认语言环境不起作用,后备语言环境也无效。例如,当用户尝试输入我的应用不支持的www.example.com/fr/home时,它会将用户重定向到www.example.com/cn/home,但它无法执行此操作。
我也尝试清除缓存,但似乎无法正常工作。
问题2:如何匹配不区分大小写的翻译键?
例如,在我的翻译文件中(" message.cn.yml")包含
Welcome: 欢迎
因此,在我的树枝模板中,我使用{{' 欢迎' |转换}}它会帮助我转换为欢迎,但当我使用{{' 欢迎' |它不会转换。有没有办法让它不区分大小写,所以我不需要故意添加密钥" welcome :欢迎"到message.cn.yml文件。
非常感谢您的帮助和建议。谢谢。
以下是我的应用文件供您参考:
翻译文件:
参数文件:
配置文件:
特定包中的路由文件(" Acme / DemoBundle"):
Twig文件:
这是我点击
时的结果
答案 0 :(得分:0)
您可以为请求设置区域设置:
$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}}
或者你可以创建自己的自定义枝条扩展,进行翻译和其他内容: http://symfony.com/doc/current/cookbook/templating/twig_extension.html