en:
activemodel:
attributes:
firm:
status:
active: active
trial: trial
trial-expired: trial is expired
delinquent: delinquent
inactive: inactive
在我的config / locals / en.yml中,我有以下内容用语言文件中的内容覆盖firm.status的值,但是我收到此错误:
translation missing: en.trial
答案 0 :(得分:1)
在您看来,您正在调用I18N.translate(@firm.status)
(好吧,您可能只是致电t @firm.status
,因为它看起来更漂亮,对吧?)
在这种情况下,由于状态为“试用”,因此与调用t "trial"
相同,这就是为什么它正在寻找顶级翻译“en.trial”。如果你想要命名这个,最简单的方法就是调用t "activemodel.attributes.firm.status.#{@firm.status}"
,尽管这会很快变得烦人,你需要一些辅助方法来为你做这个。我也不相信你应该将“activemodel.attributes”作为范围的一部分。
考虑阅读http://guides.rubyonrails.org/i18n.html,特别是关于范围的4.1.1节和关于组织语言环境文件的3.5。