26 lines
913 B
Ruby
26 lines
913 B
Ruby
|
# 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 = {})
|
||
|
return string unless string.is_a?(String)
|
||
|
|
||
|
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
|