Rails 3 Интернационализация ActiveForm (i18n) - PullRequest
0 голосов
/ 03 февраля 2012

У меня есть проект Rails 3.1.1, использующий Gem ActiveFrom расширение ActiveModel для проверки непостоянных моделей. В моем файле i18n yml у меня есть следующий код:

activemodel:
  attributes:
    contact_form:
      name: "Name"
      phone: "Telefon"
  errors:
    models:
      contact_form:
        attributes:
          name:
            blank: "Sie müssen Ihren Namen angeben."
          phone:
            blank: "Sie müssen eine Telefonnummer angeben." 

Когда я получаю все сообщения об ошибках с @contact_form.errors.full_messages, на мой взгляд, сообщения переводятся, а атрибуты нет, например:

Phone Sie müssen eine Telefonnummer angeben.

Телефон должен быть переведен на Телефон тоже.

Когда я делаю то же самое с постоянными моделями и ActiveRecord, это работает? Может кто-нибудь сказать мне отличие от ActiveRecord и ActiveModel в переводе атрибутов?

1 Ответ

0 голосов
/ 04 февраля 2012

После некоторых исследований я обнаружил проблему. Это была ошибка в ActiveFrom, которая не использовала переводы i18n. Я исправил это и создал новый драгоценный камень rails3-active_form

Вы можете найти его на https://rubygems.org/gems/rails3-active_form.

Чем добавить эту строку в свой Gemfile:

gem "rails3-active_form", "~> 2.0.0"

А это к вашим моделям:

require "active_form"

class ContactForm < ActiveForm
  attr_accessor :name, :email, :contact_number, :address, :purpose

  # ...
end 
...