Изменить локаль по умолчанию в Symfony2 - PullRequest
9 голосов
/ 08 августа 2011

Я пытаюсь изменить локаль моего приложения по умолчанию.Вещи, которые я пробовал до сих пор:

  • установить intl.default_locale в 'et_EE'
  • установить локаль в 'et' в app/config/parameters.ini
  • Изменено значение по умолчаниюlocale в методе boot () моего пакета, описанном здесь
  • Реализован класс Locale, который расширяет StubLocale и перезаписывает метод getDefault () для возврата 'et_EE'.

Вот реализация.Класс Locale, похоже, не перезаписывается, так как вызов \Locale::getDefault() не выполняет этот метод.

<?php

use Symfony\Component\Locale\Stub\StubLocale;

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

После попытки всех описанных методов, \Locale::getDefault() по-прежнему возвращает en.Мне нужно, чтобы он возвратил et_EE для отображения виджетов форм, таких как страна или язык, в правильной локали.

Как бы я поступил так?Возможность поддерживать несколько локалей позже также была бы замечательной.Спасибо.

Ответы [ 2 ]

18 голосов
/ 08 августа 2011

В Symfony 2.0:

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

В Symfony 2.1 +:

# app/config/config.yml
framework:
  default_locale: en
6 голосов
/ 09 марта 2012

В Symfony 2.0 вы также можете установить default_locale для сеанса:

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

%locale% - это переменная, которая разрешается из файла parameters.ini.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...