2011-06-05 104 views
1

我的环境:rails => 3.0.6,ruby => 1.9.2 我将我的语言环境设置为Italan。逸岸,控制台Rails I18n语言环境在Rails中设置日期格式

I18n.locale#=>里:它

我的区域文件工作得很好,但I'cant让我的日期显示正确。例如。在我的控制台

Date.current =>孙,2011年6月5日

,而不是

05朱尼奥2011

但是,如果我尝试其他方法,它的回报右译文输出

helper.number_to_currency(30)#=>“30.00€”

语言环境问题仅在日期时发生。为什么?

回答

4
Date.current => Sun, 05 Jun 2011 

不会通过localizer运行你的代码,你应该使用

I18n.localize(Date.current) 
I18n.l(Date.current) 

也有在Rails的helper方法,这会尊重语言环境,但只有(典型值)可用视图,文档,这些生命在这里:http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html

下面是在Rails 3.0.7应用程序的IRB会话的短摘录(我没有其他可用的语言环境)

ruby-1.9.2-p180 :001 > Date.current 
=> Sun, 05 Jun 2011 
ruby-1.9.2-p180 :002 > I18n.locale 
=> :en 
ruby-1.9.2-p180 :003 > I18n.l(Date.current) 
=> "2011-06-05" 
ruby-1.9.2-p180 :004 > I18n.locale = :ru 
=> :ru 
ruby-1.9.2-p180 :005 > I18n.l(Date.current) 
=> I18n::MissingTranslationData: translation missing: ru.date.formats.default