我正在使用翻译文件来管理我的Rails应用程序的各种语言:
fr:
books:
index:
title: "Livres"
存储多个视图中显示的title
的 Rails方式是什么?
这根本不是DRY,因此不是我想要的:
fr:
books:
index:
title: "Livres"
new:
title: "Livres"
edit:
title: "Livres"
现在我正在做这样的事情:
fr:
books:
title: "Livres"
但这是惯例吗?
我没有在那里指定任何观点的名称,所以我想知道这是不错的做法。
感谢您的任何意见。
答案 0 :(得分:1)
说,您需要存储图书模型的翻译。你应该将它们存储在:
en.active_record.models.book
并且,所有书籍属性都应该在:
en.active_record.attributes.book.title
保留每个视图的翻译可能不是一个好主意:
1)正如你所指出的那样,它不是DRY。
2)翻译需要很长时间才能在内存中加载。因此,更多的会增加服务器的启动时间。
答案 1 :(得分:0)
我通常喜欢为视图添加共享部分,因此您仍然可以使用速记。
fr:
books:
shared: &shared
title: Livres
thing_with_variable: "%{count} things"
index:
<<: *shared
thing: thing
new:
<<: *shared
other_thing: other thing
edit:
<<: *shared
然后在索引,新等等。视图中你可以使用速记一样。
<%= translate('.title') %>
<%= translate('.thing_with_variable', count: 2) %>