Commit 768d67f2 authored by Eric Davis's avatar Eric Davis

Workaround for i18n 0.4.x with the old style syntax. #6428 #5608

This will also silance the whole trace with the deprecation warning.

Contributed by Felix Schäfer

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4183 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent 1781d874
...@@ -78,3 +78,17 @@ module AsynchronousMailer ...@@ -78,3 +78,17 @@ module AsynchronousMailer
end end
ActionMailer::Base.send :include, AsynchronousMailer ActionMailer::Base.send :include, AsynchronousMailer
# TODO: Hack to support i18n 4.x on Rails 2.3.5. Remove post 2.3.6.
# See http://www.redmine.org/issues/6428 and http://www.redmine.org/issues/5608
module I18n
module Backend
module Base
def warn_syntax_deprecation!
return if @skip_syntax_deprecation
warn "The {{key}} interpolation syntax in I18n messages is deprecated. Please use %{key} instead.\nDowngrade your i18n gem to 0.3.7 (everything above must be deinstalled) to remove this warning, see http://www.redmine.org/issues/5608 for more information."
@skip_syntax_deprecation = true
end
end
end
end
...@@ -37,7 +37,7 @@ module Redmine ...@@ -37,7 +37,7 @@ module Redmine
def format_date(date) def format_date(date)
return nil unless date return nil unless date
Setting.date_format.blank? ? ::I18n.l(date.to_date) : date.strftime(Setting.date_format) Setting.date_format.blank? ? ::I18n.l(date.to_date, :count => date.strftime('%d')) : date.strftime(Setting.date_format)
end end
def format_time(time, include_date = true) def format_time(time, include_date = true)
...@@ -45,7 +45,7 @@ module Redmine ...@@ -45,7 +45,7 @@ module Redmine
time = time.to_time if time.is_a?(String) time = time.to_time if time.is_a?(String)
zone = User.current.time_zone zone = User.current.time_zone
local = zone ? time.in_time_zone(zone) : (time.utc? ? time.localtime : time) local = zone ? time.in_time_zone(zone) : (time.utc? ? time.localtime : time)
Setting.time_format.blank? ? ::I18n.l(local, :format => (include_date ? :default : :time)) : Setting.time_format.blank? ? ::I18n.l(local, :count => local.strftime('%d'), :format => (include_date ? :default : :time)) :
((include_date ? "#{format_date(time)} " : "") + "#{local.strftime(Setting.time_format)}") ((include_date ? "#{format_date(time)} " : "") + "#{local.strftime(Setting.time_format)}")
end end
......
...@@ -29,7 +29,7 @@ class Redmine::I18nTest < ActiveSupport::TestCase ...@@ -29,7 +29,7 @@ class Redmine::I18nTest < ActiveSupport::TestCase
set_language_if_valid 'en' set_language_if_valid 'en'
today = Date.today today = Date.today
Setting.date_format = '' Setting.date_format = ''
assert_equal I18n.l(today), format_date(today) assert_equal I18n.l(today, :count => today.strftime('%d')), format_date(today)
end end
def test_date_format def test_date_format
...@@ -47,7 +47,7 @@ class Redmine::I18nTest < ActiveSupport::TestCase ...@@ -47,7 +47,7 @@ class Redmine::I18nTest < ActiveSupport::TestCase
format_date(Date.today) format_date(Date.today)
format_time(Time.now) format_time(Time.now)
format_time(Time.now, false) format_time(Time.now, false)
assert_not_equal 'default', ::I18n.l(Date.today, :format => :default), "date.formats.default missing in #{lang}" assert_not_equal 'default', ::I18n.l(Date.today, :count => Date.today.strftime('%d'), :format => :default), "date.formats.default missing in #{lang}"
assert_not_equal 'time', ::I18n.l(Time.now, :format => :time), "time.formats.time missing in #{lang}" assert_not_equal 'time', ::I18n.l(Time.now, :format => :time), "time.formats.time missing in #{lang}"
end end
assert l('date.day_names').is_a?(Array) assert l('date.day_names').is_a?(Array)
...@@ -63,8 +63,8 @@ class Redmine::I18nTest < ActiveSupport::TestCase ...@@ -63,8 +63,8 @@ class Redmine::I18nTest < ActiveSupport::TestCase
now = Time.now now = Time.now
Setting.date_format = '' Setting.date_format = ''
Setting.time_format = '' Setting.time_format = ''
assert_equal I18n.l(now), format_time(now) assert_equal I18n.l(now, :count => now.strftime('%d')), format_time(now)
assert_equal I18n.l(now, :format => :time), format_time(now, false) assert_equal I18n.l(now, :count => now.strftime('%d'), :format => :time), format_time(now, false)
end end
def test_time_format def test_time_format
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment