2010-11-15 115 views
1

我无法弄清楚如何在I18n中翻译Rails(3.0.1)中的模型数据。I18n翻译模型数据

示例情况:

我有其中登记者选择他们的运动的一种形式。这项运动是选择通过调用填充的下拉列表:

Sport.all.collect{ |s| [s.name, s.id]} 

我很想写天真:

Sport.all.collect{ |s| [t(s.name), s.id]} 

但我没有看到护栏怎么会知道搜索的名称,如“田径领域”。我将如何提供不同语言的名字?实施这个的最佳实践是什么?

谢谢大家!

回答

2

如果Sport是数据库中的模型,那么最好还是保留数据库中的翻译。一language栏添加到您的运动版车型,并填充

Sport.where(:language => I18n.locale).collect{|s| [s.name, s.id]} 
0

我认为最合适的方式是使用globalize3

如果Globalize的宝石期间db:migrate提高质量分配错误,然后下面的代码添加到您的初始化:

Globalize::ActiveRecord::Translation.class_eval do 
    attr_accessible :locale 
end