Symfony 2.3:InvalidArgumentException:仅支持语言环境“en”

时间:2013-07-22 14:25:09

标签: symfony

我的翻译网站版本的symfony 2.2是正确的,直到我升级到v.2.3.2。

我的所有翻译文件都是yml格式。似乎很好。

我已经看到在新版本中,Symfony使用自己的Intl,对吧?但为什么它不想翻译我的页面?

1/1 InvalidArgumentException: Only the locale "en" is supported.

获取信息我将这些值放入我的php信息中:

intl

Internationalization support    enabled
version 1.1.0
ICU version 4.8.1.1
ICU Data version    4.8.1

Directive   Local Value Master Value
intl.default_locale no value    no value
intl.error_level    0   0

编辑:

问题似乎来自 CountryType 。如果我将语言环境强制为英语,那就可以了。

3 个答案:

答案 0 :(得分:1)

我通过安装symfony intl component解决了这个问题。

尝试将此行添加到composer.json:

"symfony/intl": "2.6.*@dev"

答案 1 :(得分:1)

我调试错误,它最终让我

vendor/symfony/symfony/src/Symfony/Component/Translation/Translator.php

在第420行的变量$locale中代表" de" (在我的情况下)。空白是个问题。如果你将$locale = trim($locale);放在正则表达式之前就可以了。

答案 2 :(得分:0)

日期格式似乎失败了。它使用IntlDateFormatter,它只与“en”日期格式兼容。

您可以禁用页面中日期的翻译,看看它是否有效吗?

否则请注释Symfony的这部分源代码:

if ('en' != $locale) {
            throw new MethodArgumentValueNotImplementedException(__METHOD__, 'locale', $locale, 'Only the locale "en" is supported');
        }