Mam kontroler PetsController, w którym ustawiono wiadomość błyskawiczną. Coś takiego:Jak korzystać z I18n z kontrolera w Railsach
class PetsController
...
def treat_dog
#do somthing
flash[:success] = 'Your dog is being treated.'
end
...
end
kontroler ten należy do admina, dlatego znajduje się pod adresem: app/controllers/admin/pets_controller.rb
. Użyję i18n, więc zastępuje ciąg kontroler z t('controllers.admin.pet.treated')
więc napisałem ten yml:
en:
controllers:
admin:
pet:
treated: "Your dog is being treated."
pod adresem: config/locales/controllers/admin/pet/en.yml
i to nie działa. Podjęto próbę zlokalizowania go pod adresem config/locales/controllers/admin/pets/en.yml
, , i żaden z nich nie działał, tłumaczenie nie zostało znalezione.
Jak mogę użyć tłumaczenia z tego kontrolera?
Tak, znalazłem, że zgodnie z konwencją, w sterownikach tłumaczenia I18n musi być użyty z kluczem I18n.t zamiast t ("klucz"), ale ten ostatni też musi działać. W moim przypadku wymień go na mnie. Dzięki, Mahesh. –
Jak wyjaśniono w przewodniku http://guides.rubyonrails.org/i18n.html#lazy-lookup prawdopodobnie mógłbyś to uprościć dzięki leniwym wyszukiwaniom przy użyciu helpera takiego jak ten 't ('. Treat')' – dft