Ключ I18N для моделей рельсов, сгруппированных в модуле
У меня есть несколько моделей, сгруппированных в модуле:
#/app/models/blobs/small_text.rb
class Blobs::SmallText < ActiveRecord::Base
#.. class implementation
end
Я хотел бы указать имя класса человека в "Texte Court" по-французски:
I18n.locale = "fr"
Blobs::SmallText.model_name.human # should return "Texte Court"
У меня возникают проблемы с частью модуля определения класса и как его следует включать в файлы локали. Я пробовал несколько комбинаций в файлах локали, но не работал. Вот несколько комбинаций, которые я пробовал:
# /config/locales/models/blobs.fr.yml
# first attempt (does not work)
fr:
activerecord:
models:
blobs_small_text: "Texte Court"
# /config/locales/models/blobs.fr.yml
# second attempt(does not work)
fr:
activerecord:
models:
blobs:
small_text: "Texte Court"
Любые идеи?
благодаря
Д.
Ответы
Ответ 1
Ok. Я нашел ответ. Когда вы не знаете, что ключ класса просто запускается в консоли rails, выполните следующую команду:
Blobs::SmallText.model_name.i18n_key # this returns :"blobs/small_text"
Теперь я могу обновить файлы локали:
# /config/locales/models/blobs.fr.yml
# last attempt (it works)
fr:
activerecord:
models:
blobs/small_text: "Texte Court"
Итак, теперь это работает. Однако, это только я или это соглашение об именах не уважает общие соглашения об именах в Ruby on Rails?