4

翻译 Rails 项目的模型和属性名称的常用方法是:

MyModel.model_name.human

MyModel.human_attribute_name :myattribute

或者,当您使用 MyModel 表单时:

form.label :myattribute

语言环境文件config/locales/en.yml如下所示:

en:
  activerecord:
    models:
      mymodel:
        one: TranslatedMyModel
        other: TranslatedMyModels
  attributes:
    mymodel:
      myattribute: translated attribute

这适用于常规 Rails 项目。当相同的模型成为名为 的引擎的一部分时,相同的模型将MyEngine被放入config/locales/en.yml引擎并以 my_engine 为前缀:

en:
  my_engine:
      activerecord:
        models:
          mymodel:
            one: TranslatedMyModel
            other: TranslatedMyModels
      attributes:
        mymodel:
          myattribute: translated attribute

my_engine 前缀适用于各种翻译,除非尝试通过上述方法获取模型或属性名称。

我已经建立了一个新的 Rails 项目和带有 Rails 3.2.11 的引擎来测试它,但没有成功。

有谁知道如何使这项工作?

4

1 回答 1

7

我在 github 上的 Rails 问题部分获得了帮助。这是答案:

en:
  activerecord:
    models:
      'my_engine/mymodel':
        one: TranslatedMyModel
        other: TranslatedMyModels
    attributes:
      'my_engine/mymodel':
        myattribute: translated attribute
于 2013-02-02T17:00:47.390 回答