2011-08-08 27 views
9

私のアプリケーションのデフォルトのロケールを変更しようとしています。私がこれまで試したもの:Symfony2のデフォルトのロケールを変更する

  • セットintl.default_locale「をet_EE」
  • セットのロケールにapp/config/parameters.ini
  • の「ら」には、()メソッドはhere
  • を説明し、私のバンドルのブートにデフォルトのロケールを変更しました
  • StubLocaleを拡張し、メソッドgetDefault()を上書きして 'et_EE'を返すクラスLocaleを実装しました。

ここに実装があります。 \Locale::getDefault()呼び出しはこのメソッドを実行しないため、Localeクラスは上書きされていないようです。記載されているすべてのこれらのメソッドを試した後

<?php 

use Symfony\Component\Locale\Stub\StubLocale; 

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

\Locale::getDefault()はまだenを返します。国や言語などのフォームウィジェットを適切なロケールでレンダリングするには、et_EEを返す必要があります。

どうすればいいですか?後で複数のロケールをサポートできることも素晴らしいでしょう。ありがとう。 symfonyの2.0では

+0

\ Locale :: getDefault()は、PHPによって提供されているので、このメソッドを実行しません。 Symfonyが使用するLocaleクラスは、\ Localeを拡張する\ Symfony \ Component \ Locale \ Localeではなく、\ Localeではありません。 –

答えて

18

:Symfonyの2.1+で

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

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

名誉! {default_locale:%locale%}私はparameters.iniから値を取得したと仮定しました。できます。 – gilden

+9

これは時代遅れです。フレームワークの設定は次のようになりました: 'framework: default_locale:%locale%' – ivoba

6

のSymfony 2.0では、あなたはあまりにもセッションのためdefault_localeを設定することができます。

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

%locale%されます変数であり、それはparameters.iniファイルから解決されました。

関連する問題