2011-07-31 14 views
1

私は翻訳をfallbackにしたいと思いますが、デフォルトのロケールは:deです。どのように私はこの最高を達成することができますか? 私は '設定/ application.rb' にrails 3 i18nの設定されたロケールが機能しない

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

を試みたが、I18n.localeはまだです:この後のエン。 アイデア?

答えて

1

環境内でロケールを設定することはできません。

環境設定ファイルにdefault_localeを入れて、アプリケーション自体にロケールを設定する必要があります。あなたは次の行後の行がトリガ後

I18n.locale = :de

のようにロケール設定されている場合は、あなたの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

で例えば

、すべての訪問者は、deロケールを使用しますありませんデフォルトのロケールen

だから、より良い方法は、あなたのapplication_controller.rbで

ジョナサン・クラークへ

before_filter: set_locale 

private 


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

返信です:

application_controllerから継承されたすべてのコントローラは、ロケールを設定します。