Rails I18n语言环境在Rails中设置日期格式



我的环境:rails=>3.0.6,ruby=>1.9.2我把我的地区设置为意大利。事实上,在控制台内

I18n.locale#=>:it

我的区域设置文件工作正常,但我无法正确显示日期。对于前任在我的控制台

当前日期=>2011年6月5日,周日

而不是

05 Giugno 2011

但如果我尝试其他方法,它会返回正确的翻译输出

helper.number_to_currency(30)#=>"30.00€"

区域设置问题仅与日期有关。为什么?

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

以下是Rails3.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

尝试

I18n.localize(Date.today)

或者在视图中只有

l(Date.today)

来源:http://guides.rubyonrails.org/i18n.html#adding-日期-时间格式

相关内容

  • 没有找到相关文章

最新更新