2010-11-15 108 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