Глобальная локализация атрибутов - PullRequest
2 голосов
/ 26 марта 2012

Я работаю с устаревшей схемой базы данных, которая использует camelCase для своих атрибутов, которые Rails не слишком хорошо переводит в удобочитаемую форму. Для одной модели я могу определить, например.

en:
  active_record:
    attributes:
      user:
        createDate: "Create date"

Но это работает только для модели User. Есть ли способ определить «глобальные переводы атрибутов»? Что-то вроде

en:
  activerecord:
    attributes:
      global: 
        createDate: "Create date"

Спасибо.

1 Ответ

6 голосов
/ 26 марта 2012

Rails будет искать переводы для атрибутов в следующих местах (если имя вашего атрибута не находится в пространстве имен):

  • activerecord.attributes. {Model_name}. {Attribute_name}
  • атрибуты. {attribute_name}

(посмотрите на документы по ruby ​​для human_attribute_name )

, поэтому для достижения того, что вы ищете выше, вы должны использоватьследующее:

en:
  attributes:
    createDate: "Create date"

вы все равно можете переопределить эти имена атрибутов по умолчанию, добавив переводы, как в первом примере, например,

en:
  active_record:
    attributes:
      user:
        createDate: "User creation date"

приведет к:

User.human_attribute_name(:createDate) => "User creation date"
Topic.human_attribute_name(:createDate) => "Create date"
SomeOtherModelClass.human_attribute_name(:createDate) => "Create date"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...