Как обрабатывать переводы для ActiveModel?
Я использую Rails 3.1.1, и я хотел бы правильно перевести сообщения об ошибках для ActiveModel
. Я не знаю, переписывает ли i18n_scope
- это правильный путь, чтобы решить мою проблему (или если есть другие способы), но официальная документация говорит:
i18n_scope()
возвращает i18n_scope для класса. Перезаписать, если вы хотите пользовательских уважать.
... как я должен overwtite i18n_scope
?
в это время я получаю следующее "предупреждение":
# Note the 'activemodel' part
translation missing: de.activemodel.errors.models.my_class.attributes.message.blank
# I would like to "map" translations to 'de.activerecord.errors.messages.blank'
# as made for all other ActiveRecord classes in my application
мой ActiveModel
класс выглядит следующим образом:
class MyClass
include ActiveModel::Conversion
include ActiveModel::Validations
include ActiveModel::Dirty
extend ActiveModel::Naming
extend ActiveModel::Translation
validates :name, :presence => true
...
end
2 ответов
это должен быть метод класса, по аналогии с AR код:
class MyClass
include ActiveModel ...
class << self
def i18n_scope
:activerecord
end
end
end
извините, если мой ответ неправильный, но я думаю, следующая ссылка может быть полезным для вас. http://api.rubyonrails.org/classes/ActiveModel/Errors.html
Это может быть может помочь вам-->https://github.com/svenfuchs/activemodel-error
или вы можете попробовать в файле de.в формате YML
de:
activemodel:
errors:
my_class:
attributes:
message:
blank: "your error description"
последнее решение, вы можете использовать этот камень-->https://github.com/svenfuchs/rails-i18n оно будет автоматически переводить сообщения об ошибках для нас.