更改Symfony2中的默认语言环境

时间:2011-08-08 17:25:38

标签: php symfony

我正在尝试更改应用程序的默认语言环境。到目前为止我尝试过的事情:

  • 将intl.default_locale设置为'et_EE'
  • app/config/parameters.ini
  • 中将区域设置设置为'et'
  • 更改了我的包的here
  • 所述的boot()方法中的默认语言环境
  • 实现了一个扩展StubLocale的类Locale,并覆盖方法getDefault()以返回'et_EE'。

这是实施。由于调用\Locale::getDefault()不执行此方法,Locale类似乎没有被覆盖。

<?php

use Symfony\Component\Locale\Stub\StubLocale;

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

尝试完所有这些方法后,\Locale::getDefault()仍会返回en。我需要它来返回et_EE以在适当的语言环境中呈现表单小部件,例如国家/地区或语言。

我该怎么做?能够在以后支持多个语言环境也很棒。感谢。

2 个答案:

答案 0 :(得分:18)

在Symfony 2.0中:

# app/config/config.yml
framework:
  session: { default_locale: en }

在Symfony 2.1 +中:

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

答案 1 :(得分:6)

在Symfony 2.0中,您也可以为会话设置default_locale

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

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