14

Tôi đang sử dụng Rails 3.1.1 và tôi muốn dịch đúng thông báo lỗi cho số ActiveModel. Tôi không biết nếu ghi đè i18n_scope là đúng cách để giải quyết vấn đề của tôi (hoặc nếu có những cách khác), nhưng official documentation nói:Làm cách nào để xử lý bản dịch cho ActiveModel?

i18n_scope()

Trả về i18n_scope cho lớp. Ghi đè nếu bạn muốn tùy chỉnh tra cứu .

... Tôi nên overwtite i18n_scope như thế nào?

Tại thời điểm này tôi nhận được một sau "cảnh báo":

# 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 

lớp ActiveModel của tôi là như sau:

class MyClass 
    include ActiveModel::Conversion 
    include ActiveModel::Validations 
    include ActiveModel::Dirty 
    extend ActiveModel::Naming 
    extend ActiveModel::Translation 

    validates :name, :presence => true 

    ... 
end 

Trả lời

9

Nó phải là một phương pháp học, bằng cách tương tự với AR code:

class MyClass 
    include ActiveModel ... 
    class << self 
    def i18n_scope 
     :activerecord 
    end 
    end 
end 
+0

Hoàn hảo! Đã làm cho tôi. Chỉ vì tò mò, bạn có biết cấu trúc yml cho lớp mô hình activemodel không? –

1

Tôi phải xin lỗi nếu câu trả lời của tôi sai nhưng tôi nghĩ rằng liên kết sau có thể hữu ích cho bạn. http://api.rubyonrails.org/classes/ActiveModel/Errors.html

một này có thể có thể giúp bạn ->https://github.com/svenfuchs/activemodel-error

Hoặc bạn có thể thử trong file de.yml

de:

activemodel: 

    errors: 

    my_class: 

     attributes: 

     message: 

      blank: "your error description" 

giải pháp cuối cùng, bạn có thể hãy sử dụng gem này--> https://github.com/svenfuchs/rails-i18n nó sẽ tự động dịch các thông báo lỗi cho chúng tôi.

Các vấn đề liên quan