2008-10-27 07:47:01 +01:00
|
|
|
# Deprecates the use of the former message interpolation syntax in activerecord
|
|
|
|
# as in "must have %d characters". The new syntax uses explicit variable names
|
|
|
|
# as in "{{value}} must have {{count}} characters".
|
|
|
|
|
|
|
|
require 'i18n/backend/simple'
|
|
|
|
module I18n
|
|
|
|
module Backend
|
|
|
|
class Simple
|
|
|
|
DEPRECATED_INTERPOLATORS = { '%d' => '{{count}}', '%s' => '{{value}}' }
|
|
|
|
|
|
|
|
protected
|
|
|
|
def interpolate_with_deprecated_syntax(locale, string, values = {})
|
2009-09-05 09:01:46 +02:00
|
|
|
return string unless string.is_a?(String) && !values.empty?
|
2008-10-27 07:47:01 +01:00
|
|
|
|
|
|
|
string = string.gsub(/%d|%s/) do |s|
|
|
|
|
instead = DEPRECATED_INTERPOLATORS[s]
|
|
|
|
ActiveSupport::Deprecation.warn "using #{s} in messages is deprecated; use #{instead} instead."
|
|
|
|
instead
|
|
|
|
end
|
|
|
|
|
|
|
|
interpolate_without_deprecated_syntax(locale, string, values)
|
|
|
|
end
|
|
|
|
alias_method_chain :interpolate, :deprecated_syntax
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|