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 << "
"
posts.except(:order).count(:all, :conditions => ['EXTRACT(YEAR FROM published_at)=?', year], :group => 'EXTRACT(MONTH FROM published_at)').sort_by {|month, count| -month.to_i}.each do |month, count|
- month_name = gettext(MONTHS[month.to_i - 1])
- results << content_tag('li', link_to("#{month_name} (#{count})", owner_blog.url.merge(:year => year, :month => month)))
+ results << content_tag('li', link_to("#{month_name(month.to_i)} (#{count})", owner_blog.url.merge(:year => year, :month => month)))
end
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