更改Symfony2中的默认语言环境

gil*_*den 9 php symfony

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

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

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

<?php

use Symfony\Component\Locale\Stub\StubLocale;

class Locale extends StubLocale
{
    static public function getDefault()
    {
        return 'et_EE';
    }
}
Run Code Online (Sandbox Code Playgroud)

在尝试了所有这些方法后,\Locale::getDefault()仍然会返回en.我需要它et_EE在适当的语言环境中返回渲染表单小部件,例如国家或语言.

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

Fla*_*ask 18

在Symfony 2.0中:

# app/config/config.yml
framework:
  session: { default_locale: en }
Run Code Online (Sandbox Code Playgroud)

在Symfony 2.1+中:

# app/config/config.yml
framework:
  default_locale: en
Run Code Online (Sandbox Code Playgroud)

  • 这已经过时了.它现在是框架配置的设置:`framework:default_locale:%locale%` (9认同)

小智 6

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

framework:
  translator:      { fallback: %locale% }
  ...
  session:
    default_locale: %locale%
    auto_start:     true
Run Code Online (Sandbox Code Playgroud)

%locale%是一个变量,它从parameters.ini文件中解析出来.