ruby-on-rails - I18N 键,用于在模块中分组的 rails 模型

标签 ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 internationalization

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

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

        #.. class implementation

  end

我想将人类类(class)名称设置为法语中的“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.

最佳答案

行。我觉得我找到了答案。当您不知道类 key 时,只需在 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 中的一般命名约定?

关于ruby-on-rails - I18N 键,用于在模块中分组的 rails 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10415088/

相关文章:

ruby-on-rails - 如何安装和使用 Ruby on Rails 金属生成器?

ruby-on-rails - Rails4 has_many 通过带参数

ruby-on-rails-3 - RSpec 和 Mongoid 与 rails-api

configuration - ActionMailer 设置在开发和生产之间存在错误差异

ruby-on-rails - update_attributes 不起作用

ruby-on-rails - rails : form_for with field for Hash

ruby-on-rails - 带有 MailCatcher 和 Devise gem 的 Rails 4

ruby-on-rails - Ruby on Rails 3 : How to create a 12 hour (with AM/PM) time select element?

ruby-on-rails - image_tag 不使用 asset_host

ruby-on-rails - rails : force a model to be not valid