简体   繁体   中英

Change default locale in Symfony2

I'm trying to change the default locale of my application. Things I've tried so far:

  • set intl.default_locale to 'et_EE'
  • set locale to 'et' in app/config/parameters.ini
  • Changed the default locale in my bundle's boot() method described here
  • Implemented a class Locale that extends StubLocale and overwrites method getDefault() to return 'et_EE'.

Here is the implementation. The Locale class does not seem to be getting overwritten as calling \\Locale::getDefault() doesn't execute this method.

<?php

use Symfony\Component\Locale\Stub\StubLocale;

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

After trying all these methods described, \\Locale::getDefault() still returns en . I need it to return et_EE to render form widgets, such as country or language, in the proper locale.

How would I go doing this? Being able to support multiple locales later would also be great. Thanks.

In Symfony 2.0:

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

In Symfony 2.1+:

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

In Symfony 2.0, you can set default_locale for the session too:

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

The %locale% is a variable, and it's resolved from the parameters.ini file.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM