16

我有几个模型分组在这样的模块中:

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

        #.. class implementation

  end

我想将人类班级名称设置为法语中的“Texte Court”:

  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。

4

1 回答 1

40

行。我觉得我找到了答案。当您不知道类密钥时,只需在 rails 控制台中运行以下指令:

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

现在我可以相应地更新我的语言环境文件:

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

所以现在它可以工作了。但是,仅仅是我还是这个命名约定不尊重 Ruby on Rails 中的一般命名约定?

于 2012-05-02T13:57:09.577 回答