我希望翻譯回退到:en,但默認語言環境是:de。我怎樣才能做到最好? 我試圖在 '配置/ application.rb中'rails 3 i18n set locale does not work
config.i18n.default_locale = :en
config.i18n.locale = :de
但I18n.locale仍然是:恩在此之後。 有什麼想法?
我希望翻譯回退到:en,但默認語言環境是:de。我怎樣才能做到最好? 我試圖在 '配置/ application.rb中'rails 3 i18n set locale does not work
config.i18n.default_locale = :en
config.i18n.locale = :de
但I18n.locale仍然是:恩在此之後。 有什麼想法?
你不能在你的環境中設置語言環境。
您必須將default_locale放置在您的環境配置文件中,並且您必須在應用程序本身中設置您的語言環境。
例如,在您的application_controller.rb
before_filter: set_locale
private
def set_locale
I18n.locale = params[:locale] if params[:locale]
end
如果您設置的地點與以下行類似
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繼承把場景設置每個控制器。
爲什麼會發生這種情況?答案是有效的,但文檔說,改變'config/application.rb'中的這些行應該改變語言環境。 – acrespo
我必須在每個頁面上設置區域設置嗎?我假設你將上面的代碼放在應用程序控制器中? –