翻译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的引擎进行测试,但没有成功。
有人知道如何使这项工作吗?
答案 0 :(得分:6)
我在github的Rails问题部分得到了帮助。这就是答案:
en:
activerecord:
models:
'my_engine/mymodel':
one: TranslatedMyModel
other: TranslatedMyModels
attributes:
'my_engine/mymodel':
myattribute: translated attribute