2011-08-08 28 views
9

我在嘗試更改我的應用程序的默認區域設置。事情到目前爲止,我已經試過:在Symfony2中更改默認區域設置

  • 集intl.default_locale爲「et_EE」
  • 地方設置爲「等」在app/config/parameters.ini
  • 更改默認的語言環境,我包的引導()方法描述here
  • 實現了擴展StubLocale並覆蓋方法getDefault()以返回'et_EE'的Locale類。

這是實施。 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以在適當的語言環境中呈現窗體小部件,例如國家或語言。

我該怎麼做呢?以後能夠支持多種語言環境也會很好。謝謝。

+0

\ Locale :: getDefault()不會執行此方法,因爲它是由PHP提供的。 Symfony使用的Locale類不是\ Locale,而是\ Symfony \ Component \ Locale \ Locale,它擴展了\ Locale。 –

回答

18

在Symfony的2.0:

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

在Symfony的2.1+:

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

Kudos!我多次瀏覽了這個地方,並且因爲它有會話:{default_locale:%locale%}我假設它從parameters.ini中獲取了值。有用。 – gilden

+9

這已經過時了。它現在是一個框架配置的設置:'框架: default_locale:%locale%' – ivoba

6

在Symfony的2.0,你可以設置default_locale的會議太:

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

%locale%是一個變量,它從parameters.ini文件解析。