Перевод значений модели в представлении - PullRequest
1 голос
/ 03 марта 2012
en:
  activemodel:
    attributes:
      firm:
        status:
          active: active
          trial: trial
          trial-expired: trial is expired
          delinquent: delinquent
          inactive: inactive

В моем config / locals / en.yml у меня есть следующее, чтобы переопределить значение firm.status с тем, что находится в языковом файле, но я получаю эту ошибку:

 translation missing: en.trial

1 Ответ

1 голос
/ 03 марта 2012

По вашему мнению, вы звоните I18N.translate(@firm.status) (хорошо, вы, вероятно, просто звоните t @firm.status, потому что это выглядит красивее, верно?)

В этом случае, поскольку статус «триальный», он аналогичен вызову t "trial", поэтому он ищет перевод верхнего уровня «en.trial». Если вы хотите использовать пространство имен для этого, самый простой способ - просто вызвать t "activemodel.attributes.firm.status.#{@firm.status}", хотя это быстро станет раздражающим, и вам понадобятся некоторые вспомогательные методы, которые сделают это за вас. Я также не уверен, что у вас должен быть файл "activemodel.attributes" как часть области действия.

Подумайте о том, чтобы прочитать http://guides.rubyonrails.org/i18n.html,, в частности, раздел 4.1.1 о областях и 3.5 об организации файлов локали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...