Php 更改Symfony2中的默认区域设置

Php 更改Symfony2中的默认区域设置,php,symfony,Php,Symfony,我正在尝试更改应用程序的默认区域设置。到目前为止我已经尝试过的事情: 将intl.default\u locale设置为“et\u EE” 在app/config/parameters.ini中将locale设置为“et” 更改了我的bundle的boot()方法中的默认区域设置 实现了一个类Locale,该类Locale扩展了StubLocale并覆盖方法getDefault()以返回“et_EE” 下面是实现。由于调用\Locale::getDefault()未执行此方法,区域设置类似乎

我正在尝试更改应用程序的默认区域设置。到目前为止我已经尝试过的事情:

  • 将intl.default\u locale设置为“et\u EE”
  • app/config/parameters.ini中将locale设置为“et”
  • 更改了我的bundle的boot()方法中的默认区域设置
  • 实现了一个类Locale,该类Locale扩展了StubLocale并覆盖方法getDefault()以返回“et_EE”
下面是实现。由于调用
\Locale::getDefault()
未执行此方法,区域设置类似乎没有被覆盖

<?php

use Symfony\Component\Locale\Stub\StubLocale;

class Locale extends StubLocale
{
    static public function getDefault()
    {
        return 'et_EE';
    }
}
Symfony 2.0中的

# app/config/config.yml
framework:
  session: { default_locale: en }
在Symfony 2.1+中:

# app/config/config.yml
framework:
  default_locale: en

在Symfony 2.0中,您也可以为会话设置
default\u locale

framework:
  translator:      { fallback: %locale% }
  ...
  session:
    default_locale: %locale%
    auto_start:     true

%locale%
是一个变量,它是从
parameters.ini
文件解析的。

Kudos!我浏览了那个地方很多次,因为它有session:{default_locale:%locale%}我假设它从parameters.ini中获取了值。它有效。这已经过时了。现在是框架配置的设置:
framework:default\u区域设置:%locale%
\locale::getDefault()不会执行此方法,因为它是由PHP提供的。Symfony使用的区域设置类不是\Locale,而是扩展\Locale的\Symfony\Component\Locale\Locale。