12

Tôi có một số mô hình nhóm trong một mô-đun như thế này:chính I18N cho đường ray mô hình nhóm trong một module

#/app/models/blobs/small_text.rb 
    class Blobs::SmallText < ActiveRecord::Base 

     #.. class implementation 

    end 

Tôi muốn thiết lập các tên lớp con người để "Texte Tòa án" bằng tiếng Pháp:

I18n.locale = "fr" 
    Blobs::SmallText.model_name.human # should return "Texte Court" 

Tôi đang gặp sự cố với phần mô-đun của định nghĩa lớp và cách nó nên được đưa vào tệp ngôn ngữ. Tôi đã thử một số kết hợp trong các tập tin địa phương của tôi nhưng dit không hoạt động. Dưới đây là một số kết hợp Tôi đã thử:


# /config/locales/models/blobs.fr.yml 

    # first attempt (does not work) 
    fr: 
    activerecord: 
     models: 
     blobs_small_text: "Texte Court" 

# /config/locales/models/blobs.fr.yml 
    # second attempt(does not work) 
    fr: 
    activerecord: 
     models: 
     blobs: 
      small_text: "Texte Court" 

Bất kỳ ý tưởng? Cảm ơn D.

Trả lời

27

Ok. Tôi điều tôi tìm thấy câu trả lời. Khi bạn không biết chìa khóa lớp chỉ chạy trong một đường ray an ủi các hướng dẫn sau đây:

Blobs::SmallText.model_name.i18n_key # this returns :"blobs/small_text" 

Bây giờ tôi có thể cập nhật các file locale của tôi phù hợp:

# /config/locales/models/blobs.fr.yml 
# last attempt (it works) 
fr: 
    activerecord: 
    models: 
     blobs/small_text: "Texte Court" 

Vì vậy, bây giờ nó hoạt động. Tuy nhiên, chỉ có tôi hay quy ước đặt tên này không tôn trọng các quy ước đặt tên chung trong Ruby on Rails?

+4

Gọi 'i18n_key' là một mẹo tuyệt vời. Tôi sẽ mở một vé cho không gian tên blobs/small_text vì chắc chắn nó sẽ là blobs.small_text – tigrish

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