我想在我的应用程序中转换属性名称并将其复数。
因此,对于我的api_key属性,我的翻译是“ Clef API”。
我用Mymodel.human_attribute_name(:api_key).pluralize(2)
来复数属性名称,结果是:"Clef APIs"
但是在法语中,“ Clef API”的复数形式是“ Clefs API”
因此,我尝试在YML中提供复数形式的翻译,但它不起作用,并且我仍然获得了以“ s”结尾的复数形式的“一个”的翻译。
fr.yml:
activerecord:
attributes:
mymodel:
api_key:
one: "Clef API"
other: "Clefs API"
我可以让Mymodel.human_attribute_name(:api_key).pluralize(2)
返回"Clefs API"
吗?
如果没有,我该如何翻译和复数我的属性名称?
答案 0 :(得分:4)
在发布我的问题之后,尽管我应该检查human_attribute_name的文档以获取提示。它确实解决了我的问题...
结果human_attribute_name
直接处理复数。它接受带有键options
的{{1}}哈希,该哈希确实像其他I18n方法一样触发了复数。
所以,就像做:count
答案 1 :(得分:3)
您可以在config/initializers/inflections.rb
的变形器中添加自定义的复数词。您可以在下面看到代码示例:
ActiveSupport::Inflector.inflections(:fr) do |inflect|
inflect.irregular 'Clef API', 'Clefs API'
end