2011-07-31 40 views
1

我希望翻譯回退到:en,但默認語言環境是:de。我怎樣才能做到最好? 我試圖在 '配置/ application.rb中'rails 3 i18n set locale does not work

config.i18n.default_locale = :en 
config.i18n.locale = :de 

但I18n.locale仍然是:恩在此之後。 有什麼想法?

回答

1

你不能在你的環境中設置語言環境。

您必須將default_locale放置在您的環境配置文件中,並且您必須在應用程序本身中設置您的語言環境。

例如,在您的application_controller.rb

before_filter: set_locale 

private 

    def set_locale 
    I18n.locale = params[:locale] if params[:locale] 
    end 
+0

爲什麼會發生這種情況?答案是有效的,但文檔說,改變'config/application.rb'中的這些行應該改變語言環境。 – acrespo

+1

我必須在每個頁面上設置區域設置嗎?我假設你將上面的代碼放在應用程序控制器中? –

3

如果您設置的地點與以下行類似

I18n.locale = :de

後再行觸發後,每位遊客將使用de語言環境,而不是默認語言環境en

所以,更好的辦法是

在你application_controller.rb

before_filter: set_locale 

private 


def set_locale 
    I18n.locale = params[:locale] || I18n.default_locale 
end 

回覆喬納森·克拉克:

從application_controller繼承把場景設置每個控制器。