Использовать относительный root для i18n в файлах презентаторов - PullRequest
0 голосов
/ 05 апреля 2019

Работая с файлом типа app/presenters/foo.rb, я хочу иметь возможность иметь ключ i18n foo.whatever и ссылаться на него внутри foo.rb как I18n.t('.whatever'), так же, как это делается с представлениями.

Это возможно? Я пролистал руководство по i18n по Rails и начал поиск в интернете («добавить относительные корни в i18n»), но безрезультатно.

1 Ответ

1 голос
/ 06 апреля 2019

Является ли foo классом или модулем? Вы можете сделать так, чтобы все ваши докладчики расширяли базовый модуль примерно так:

def t(key)
  scope = "presenters.#{self.class.to_s.underscore.gsub('/', '.')}"
  I18n.t(key, scope: scope, default: I18n.t(key))
end

РЕДАКТИРОВАТЬ: изменен на правильный синтаксис Rails и работать с пространствами имен модуля

...