私は、フラッシュメッセージが設定されている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.yml
、config/locales/controllers/admin/en.yml
config/locales/controllers/en.yml
で検索しようとしていますが、どれも実行されていないと、その翻訳は見つかりませんでした。
このコントローラの翻訳をどのように使用できますか?コントローラで
はい、私が発見したという慣例により、コントローラの国際化翻訳t( 'key')の代わりにI18n.t 'key'と一緒に使用する必要がありますが、この最後にも機能する必要があります。私の場合、交換は私のために働く。マヘシに感謝します。 –
ガイドで説明したように、http://guides.rubyonrails.org/i18n.html#lazy-lookupで説明したように、この 't( '。treated')'のようなヘルパーを使って遅延参照を単純化することができます。 – dft