symfony 语言环境设置为 en_US
symfony Locale being set to en_US
我已经安装了三个区域设置包:
我的 config.yml
看起来像这样:
jms_i18n_routing:
default_locale: en
locales: [en, fr, es]
strategy: prefix
lunetics_locale:
strict_mode: false
allowed_locales: [en, fr, es]
guessing_order:
- query
- router
- session
- browser
- cookie
be_simple_i18n_routing: ~
一切如我所愿,除了我在日志中发现一个错误:
[2015-08-02 01:16:48] request.CRITICAL: Exception thrown when handling an exception (Twig_Error_Runtime: An exception has been thrown during the rendering of a template ("I18nRoute "site_homepage" (en_US) does not exist.") in "TwigBundle:Exception:error.html.twig" at line 77. at /app/cache/prod/classes.php line 4528) {"exception":"[object] (Twig_Error_Runtime(code: 0): An exception has been thrown during the rendering of a template (\"I18nRoute \"site_homepage\" (en_US) does not exist.\") in \"TwigBundle:Exception:error.html.twig\" at line 77. at /app/cache/prod/classes.php:4528, Symfony\Component\Routing\Exception\RouteNotFoundException(code: 0): I18nRoute \"site_homepage\" (en_US) does not exist. at /app/cache/prod/classes.php:14728)"} []
在堆栈中我发现:[2015-08-02 01:16:49] app.INFO: Setting [ en_US ] as locale for the (Sub-)Request [] []
但是,我不明白如何将语言环境设置为 "en_US"。
我想它来自对 LuneticsLocaleBundle 的猜测,但是具有 "en_US" 的人应该匹配 "en",而不是 "en_US"。
我的主要问题是我不知道如何跟踪它。当我用自己的设置连接到主页时,前面有"fr_FR",绝对没有问题。
有没有人有测试的想法我可以运行解决这个问题?
自从我更新到 symfony2.7 后,Lunetics Bundle 和 JMSi18n 之间存在冲突。
显然这是在处理 sub-requests 时出现的问题,Lunetics 被 JMS 包取代了。
所以我现在只使用 JMS 进行语言环境检测。它比 Lunetics 干净得多,但它有效。
我已经安装了三个区域设置包:
我的 config.yml
看起来像这样:
jms_i18n_routing:
default_locale: en
locales: [en, fr, es]
strategy: prefix
lunetics_locale:
strict_mode: false
allowed_locales: [en, fr, es]
guessing_order:
- query
- router
- session
- browser
- cookie
be_simple_i18n_routing: ~
一切如我所愿,除了我在日志中发现一个错误:
[2015-08-02 01:16:48] request.CRITICAL: Exception thrown when handling an exception (Twig_Error_Runtime: An exception has been thrown during the rendering of a template ("I18nRoute "site_homepage" (en_US) does not exist.") in "TwigBundle:Exception:error.html.twig" at line 77. at /app/cache/prod/classes.php line 4528) {"exception":"[object] (Twig_Error_Runtime(code: 0): An exception has been thrown during the rendering of a template (\"I18nRoute \"site_homepage\" (en_US) does not exist.\") in \"TwigBundle:Exception:error.html.twig\" at line 77. at /app/cache/prod/classes.php:4528, Symfony\Component\Routing\Exception\RouteNotFoundException(code: 0): I18nRoute \"site_homepage\" (en_US) does not exist. at /app/cache/prod/classes.php:14728)"} []
在堆栈中我发现:[2015-08-02 01:16:49] app.INFO: Setting [ en_US ] as locale for the (Sub-)Request [] []
但是,我不明白如何将语言环境设置为 "en_US"。
我想它来自对 LuneticsLocaleBundle 的猜测,但是具有 "en_US" 的人应该匹配 "en",而不是 "en_US"。
我的主要问题是我不知道如何跟踪它。当我用自己的设置连接到主页时,前面有"fr_FR",绝对没有问题。
有没有人有测试的想法我可以运行解决这个问题?
自从我更新到 symfony2.7 后,Lunetics Bundle 和 JMSi18n 之间存在冲突。
显然这是在处理 sub-requests 时出现的问题,Lunetics 被 JMS 包取代了。
所以我现在只使用 JMS 进行语言环境检测。它比 Lunetics 干净得多,但它有效。