zob*_*bel 2 translation ruby-on-rails internationalization pluralize
我的 Rails 应用程序遇到以下问题:我想翻译一些像这样的模型属性,以便它们在验证错误消息中正确显示。
de:
activerecord:
models:
account:
attributes:
email:
one: 'Email'
other: 'Emails'
Run Code Online (Sandbox Code Playgroud)
现在在 Rails 控制台中我可以检查
I18n.t 'activerecord.models.account.attributes.email', count: 1
Run Code Online (Sandbox Code Playgroud)
它返回“电子邮件”,一切似乎都很好。
但是如果我转到浏览器并发布表单,则会收到错误
I18n::InvalidPluralizationData in AccountsController#create
translation data {:attributes=>{:email=>{:one=>"Email", :other=>"Emails"}}} can not be used with :count => 1
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?Rails 期望获得哪些翻译数据?
谢谢
模型名称和属性名称都有自己的 i18n 范围。
尝试
activerecord.attributes.account.email
Run Code Online (Sandbox Code Playgroud)
代替
activerecord.models.account.attributes.email
Run Code Online (Sandbox Code Playgroud)
(并相应地调整您的 yaml 文件)。
另请参阅有关 I18n API 的便捷Rails 指南。
哈!