2011-08-08 37 views
9

Estoy intentando cambiar la configuración regional predeterminada de mi aplicación. Cosas que he probado hasta ahora:Cambiar la configuración regional predeterminada en Symfony2

  • conjunto intl.default_locale a la configuración regional
  • conjunto 'et_EE' a 'y' en app/config/parameters.ini
  • cambiado la configuración regional predeterminada en el maletero de mi paquete() método descrito here
  • Se implementó una configuración regional de clase que amplía StubLocale y sobrescribe el método getDefault() para devolver 'et_EE'.

Aquí está la implementación. La clase Locale no parece sobrescribirse ya que al llamar al \Locale::getDefault() no se ejecuta este método.

<?php 

use Symfony\Component\Locale\Stub\StubLocale; 

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

Después de probar todos estos métodos descritos, \Locale::getDefault() sigue devolviendo en. Necesito que devuelva et_EE para procesar widgets de formularios, como el país o el idioma, en la configuración regional adecuada.

¿Cómo podría ir haciendo esto? Ser capaz de soportar múltiples locales más tarde también sería genial. Gracias.

+0

\ Locale :: getDefault() no ejecutará este método, ya que es proporcionado por PHP. La clase Locale utilizada por Symfony no es \ Locale, en lugar de \ Symfony \ Component \ Locale \ Locale, que extiende \ Locale. –

Respuesta

18

En Symfony 2.0:

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

En Symfony 2.1 +:

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

Felicitaciones! Recorrí ese lugar muchas veces y como tenía sesión: {default_locale:% locale%} Supuse que tomaba el valor de parameters.ini. Funciona. – gilden

+9

esto está desactualizado. ahora es una configuración de framework config: 'framework: default_locale:% locale%' – ivoba

6

En Symfony 2.0, puede establecer default_locale para la sesión también:

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

El %locale% es una variable, y se resuelve a partir del archivo parameters.ini.

Cuestiones relacionadas