Как использовать Rails I18n.t для перевода атрибута ActiveRecord? - PullRequest
7 голосов
/ 08 декабря 2009

Попытка использовать мои активные переводы записей в config / locales / de.yml также в моих представлениях. Я думал, что я умный, используя это:

de:
  activerecord: 
    attributes:
      user:
        login: "Benutzerkennung"
        comment: "Bemerkungen"

И, на мой взгляд, это:

<%= label_tag :login, t('activerecord.attributes.user.login') %> 

Но вместо значения перевода ("Benutzerkennung") я получаю печально известную "отсутствует перевод: de, activerecord, attribute, user, login"

Кто-нибудь получил эту работу (не используя плагин для перевода меток (я опасаюсь потенциальных побочных эффектов) или User.humanize_attribute_name)? Что мне не хватает? (он работает, когда я использую «activerecord1» или что-то еще, кроме activerecord, поэтому мои настройки кажутся нормальными)

Спасибо!

Ответы [ 3 ]

15 голосов
/ 08 декабря 2009

Хорошо, плохо, работает нормально. Я попал в ловушку форматирования YML: (

Чтобы облегчить отладку, используйте «script / console» и следующие операторы: - I18n.locale -> должен вывести локаль, которую вы хотите изучить - I18n.t ('activerecord.attributes') -> должен предоставить вам все пары ключ / значение для вашего перевода, если нет, вы допустили ошибку форматирования в вашем YML-файле или не смогли найти

И кстати - плагин работает довольно хорошо http://github.com/iain/i18n_label/ если вам не нравится результат ".human_name" (который использует плагин), просто вернитесь к I18n.t ('ваш ключ')

8 голосов
/ 27 мая 2011

Другой метод:

<%= label_tag :login, User.human_attribute_name(:login) %>
0 голосов
/ 07 апреля 2011

Вам следует обновить Rails gem до v2.3.11 (я пытался использовать 2.3.9, но сейчас он недоступен, поэтому я предлагаю вам 2.3.11)!

gem install -v=2.3.11 rails

Вы можете найти эти проблемы, задокументированные здесь: Rails 2.3.9 Замечания к выпуску

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