假设我们的模型包含 index , show , edit 和 new 视图。假设我们希望国际化和翻译所有这些视图,并在将视图名称传递给视图中的Book
方法时使用延迟查找(自动翻译范围)。
到目前为止,我找到的唯一解决方案是在字典中包含多个相同属性的键(YML文件):模型的一个键(将转换表单标签)和每个视图的一个附加键。示例:
t
鉴于Rails社区中DRY原则的重要性,我相信可能有一种方法可以避免为同一属性使用多个密钥。
一种可能的替代方法是在字典中仅包含#pt-BR.yml
pt-BR:
activerecord:
attributes:
book:
title: Título
books:
index:
title: Título
show:
title: Título
键(仅翻译模型),但似乎懒惰查找在视图中不起作用。我们可以在视图中执行类似activerecord
的操作,但它看起来不是一个正确的解决方案,因为每次调用<%= t('activerecord.attributes.book.title') %>
方法时我们都必须重复整个范围(activerecord.attributes.book
)。
我很感激,如果有人能指出我更好的方式/ DRYer方式。谢谢。