Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change default locale in Symfony2

Tags:

php

symfony

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.

like image 256
kgilden Avatar asked Aug 08 '11 17:08

kgilden


2 Answers

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
like image 177
Flask Avatar answered Nov 08 '22 07:11

Flask


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.

like image 43
Luciano César Natale Avatar answered Nov 08 '22 06:11

Luciano César Natale