12

我有幾個型號的模塊中分組如下:國際化的關鍵

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

     #.. class implementation 

    end 

我想人類的類名在法國設置爲「Texte苑」:

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

我遇到了類定義的模塊部分以及它應該如何包含在語言環境文件中。我在我的區域設置文件中嘗試過幾種組合,但不適用。這裏有一些組合我已經試過:


# /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" 

任何想法? 謝謝 D.

回答

27

好的。我的事情我找到了答案。所以,現在它的工作原理

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

:當你不知道剛纔在軌道運行的類鍵控制檯下面的指令:

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

現在我可以相應地更新我的語言文件。但是,它只是我還是這個命名約定不尊重Ruby on Rails中的一般命名約定?

+4

調用'i18n_key'是一個很棒的技巧。我會爲blobs/small_text命名空間打開一張票據,當然這應該是blobs.small_text – tigrish