5

私は、フラッシュメッセージが設定されているPetsControllerを持っています。このような何か:RailsでコントローラからI18nを使用する方法

class PetsController 

    ... 

    def treat_dog 
    #do somthing 
    flash[:success] = 'Your dog is being treated.' 
    end 

    ... 

end 

このコントローラは、管理者に属し、それは次の場所にあります。app/controllers/admin/pets_controller.rb

en: 
    controllers: 
    admin: 
     pet: 
     treated: "Your dog is being treated." 

に位置:私は国際化を使用しますので、私はt('controllers.admin.pet.treated')とコントローラ内の文字列を置き換え、そして、私はこのYML書いconfig/locales/controllers/admin/pet/en.ymlをし、それが動作しませんでした。私はconfig/locales/controllers/admin/pets/en.ymlconfig/locales/controllers/admin/en.yml config/locales/controllers/en.yml で検索しようとしていますが、どれも実行されていないと、その翻訳は見つかりませんでした。

このコントローラの翻訳をどのように使用できますか?コントローラで

答えて

8

あなたは(あなたは、サーバーを再起動する必要があります)config/locales/en.ymlにそれを入れて、それが動作するはずです。この

I18n.t 'controllers.admin.pet.treated' 
+0

はい、私が発見したという慣例により、コントローラの国際化翻訳t( 'key')の代わりにI18n.t 'key'と一緒に使用する必要がありますが、この最後にも機能する必要があります。私の場合、交換は私のために働く。マヘシに感謝します。 –

+0

ガイドで説明したように、http://guides.rubyonrails.org/i18n.html#lazy-lookupで説明したように、この 't( '。treated')'のようなヘルパーを使って遅延参照を単純化することができます。 – dft

0
def treat_dog 
    #do somthing 
    flash[:success] = t('controllers.admin.pet.treated') 
end 
+0

私は実際にそれを使用しました –

0

のようにそれを使用しています。

このガイドは、I18nの頭をクリアするのに役立ちます。私は関連するセクションへのリンクを与えていますが、それを全部読んでいます:http://guides.rubyonrails.org/i18n.html#adding-translations

ネストしたファイルを使用することを主張するなら、それを有効にする必要があります。ドキュメント:

Railsのデフォルトのロケールローディングメカニズムは、ここにあるようにネストされた辞書にロケールファイルをロードしません。だから、これが動作するために、我々は明示的にさらに見てレールを伝える必要があります。コールバックで

# config/application.rb 
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')] 
+0

'config/locales/en.yml'にあるymlは一般的なまたは一般的なtranlationsを設定するために使用されます。あなたは多くの翻訳を持っています。 'view'や' controller'ツリーと同じ階層順です。 –

+0

@IvánCortésRomero:hah、それについて知りませんでした!しかし、そのガイドを読んでください。ネストされたファイルはデフォルトでロードされず、それを有効にする方法についても言及しています。 –

+0

私はその設定について知りませんでしたので、私は 'config/application.rb'を確認しましたが、私はすでにこの行を見つけました。しかし、ありがとうございます。 –

0

は、それは次のようになります。

add_breadcrumb proc{ I18n.t('home_page') }, :root_path 
関連する問題