diff --git a/app/helpers/dates_helper.rb b/app/helpers/dates_helper.rb index 4be36e1..337c147 100644 --- a/app/helpers/dates_helper.rb +++ b/app/helpers/dates_helper.rb @@ -2,24 +2,14 @@ require 'noosfero/i18n' module DatesHelper - # FIXME Date#strftime should translate this for us !!!! - MONTHS = [ - N_('January'), - N_('February'), - N_('March'), - N_('April'), - N_('May'), - N_('June'), - N_('July'), - N_('August'), - N_('September'), - N_('October'), - N_('November'), - N_('December') - ] - - def month_name(n) - _(MONTHS[n-1]) + MONTHS = I18n.t('date.month_names') + + def month_name(n, abbreviated = false) + if abbreviated + I18n.t('date.abbr_month_names')[n] + else + MONTHS[n] + end end # formats a date for displaying. @@ -91,15 +81,7 @@ module DatesHelper _(date.strftime("%a")) else # FIXME Date#strftime should translate this for us !!!! - _([ - N_('Sunday'), - N_('Monday'), - N_('Tuesday'), - N_('Wednesday'), - N_('Thursday'), - N_('Friday'), - N_('Saturday'), - ][date.wday]) + I18n.t('date.day_names')[date.wday] end end @@ -111,7 +93,7 @@ module DatesHelper date = date << 1 end if opts[:only_month] - _('%{month}') % {:month => month_name(date.month.to_i) } + _('%{month}') % { :month => month_name(date.month.to_i) } else _('%{month} %{year}') % { :year => date.year, :month => month_name(date.month.to_i) } end @@ -156,7 +138,7 @@ module DatesHelper else order = [:day, :month, :year] end - date_select(object, method, html_options.merge(options.merge(:include_blank => true, :order => order, :use_month_names => MONTHS.map {|item| gettext(item)}))) + date_select(object, method, html_options.merge(options.merge(:include_blank => true, :order => order, :use_month_names => MONTHS))) end end diff --git a/app/models/blog_archives_block.rb b/app/models/blog_archives_block.rb index 62703e4..4368d93 100644 --- a/app/models/blog_archives_block.rb +++ b/app/models/blog_archives_block.rb @@ -36,8 +36,7 @@ class BlogArchivesBlock < Block results << content_tag('li', content_tag('strong', "#{year} (#{count})")) results << "" end diff --git a/test/unit/dates_helper_test.rb b/test/unit/dates_helper_test.rb index 5d2e91c..6d82f1b 100644 --- a/test/unit/dates_helper_test.rb +++ b/test/unit/dates_helper_test.rb @@ -5,13 +5,16 @@ class DatesHelperTest < ActiveSupport::TestCase include DatesHelper should 'translate month names' do - expects(:_).with('January').returns('Janeiro') - assert_equal "Janeiro", month_name(1) + assert_equal "January", month_name(1) + end + + should 'translate abbreviated month names' do + assert_equal "Sep", month_name(9, true) end should 'display date with translation' do + expects(:month_name).with(1).returns('Janeiro') expects(:_).with('%{month_name} %{day}, %{year}').returns('%{day} de %{month_name} de %{year}') - expects(:_).with('January').returns('Janeiro') assert_equal '11 de Janeiro de 2008', show_date(Date.new(2008, 1, 11)) end @@ -68,75 +71,48 @@ class DatesHelperTest < ActiveSupport::TestCase end should 'show day of week' do - expects(:_).with("Sunday").returns("Domingo") - date = mock - date.expects(:wday).returns(0) - assert_equal "Domingo", show_day_of_week(date) + assert_equal "Thursday", show_day_of_week(Date.new(2014,10,23)) end should 'show abbreviated day of week' do - expects(:_).with("Sun").returns("Dom") date = Date.new(2009, 10, 25) - assert_equal "Dom", show_day_of_week(date, true) + assert_equal "Sun", show_day_of_week(date, true) end should 'show month' do - expects(:_).with('January').returns('January') - expects(:_).with('%{month} %{year}').returns('%{month} %{year}') assert_equal 'January 2008', show_month(2008, 1) end should 'fallback to current year/month in show_month' do Date.expects(:today).returns(Date.new(2008,11,1)).at_least_once - - expects(:_).with('November').returns('November').at_least_once - expects(:_).with('%{month} %{year}').returns('%{month} %{year}').at_least_once assert_equal 'November 2008', show_month(nil, nil) assert_equal 'November 2008', show_month('', '') end should 'show next month' do - expects(:_).with('November').returns('November').at_least_once - expects(:_).with('%{month} %{year}').returns('%{month} %{year}').at_least_once assert_equal 'November 2009', show_month(2009, 10, :next => true) end should 'show previous month' do - expects(:_).with('September').returns('September').at_least_once - expects(:_).with('%{month} %{year}').returns('%{month} %{year}').at_least_once assert_equal 'September 2009', show_month(2009, 10, :previous => true) end should 'provide an intertionalized date selector pass month names' do - expects(:gettext).with('January').returns('January') - expects(:gettext).with('February').returns('February') - expects(:gettext).with('March').returns('March') - expects(:gettext).with('April').returns('April') - expects(:gettext).with('May').returns('May') - expects(:gettext).with('June').returns('June') - expects(:gettext).with('July').returns('July') - expects(:gettext).with('August').returns('August') - expects(:gettext).with('September').returns('September') - expects(:gettext).with('October').returns('October') - expects(:gettext).with('November').returns('November') - expects(:gettext).with('December').returns('December') expects(:language).returns('en') - - expects(:date_select).with(:object, :method, { :include_blank => true, :order => [:month, :day, :year], :use_month_names => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']}).returns("KKKKKKKK") - + expects(:date_select).with(:object, :method, { :include_blank => true, :order => [:month, :day, :year], :use_month_names => MONTHS }).returns("KKKKKKKK") assert_equal 'KKKKKKKK', pick_date(:object, :method) end should 'order date in english like month day year' do - expects(:language).returns("en") - expects(:date_select).with(:object, :method, { :include_blank => true, :order => [:month, :day, :year], :use_month_names => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']}).returns("KKKKKKKK") + expects(:language).returns('en') + expects(:date_select).with(:object, :method, { :include_blank => true, :order => [:month, :day, :year], :use_month_names => MONTHS }).returns("KKKKKKKK") assert_equal 'KKKKKKKK', pick_date(:object, :method) end should 'order date in other languages like day month year' do expects(:language).returns('pt_BR') - expects(:date_select).with(:object, :method, { :include_blank => true, :order => [:day, :month, :year], :use_month_names => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']}).returns("KKKKKKKK") + expects(:date_select).with(:object, :method, { :include_blank => true, :order => [:day, :month, :year], :use_month_names => MONTHS }).returns("KKKKKKKK") assert_equal 'KKKKKKKK', pick_date(:object, :method) end @@ -151,9 +127,7 @@ class DatesHelperTest < ActiveSupport::TestCase should 'translate time' do time = Time.parse('25 May 2009, 12:47') - expects(:_).with('%{day} %{month} %{year}, %{hour}:%{minutes}').returns('translated time') - stubs(:_).with('May').returns("Maio") - assert_equal 'translated time', show_time(time) + assert_equal '25 May 2009, 12:47', show_time(time) end should 'handle nil time' do -- libgit2 0.21.2