Use localized date and time formats in `interpolate_hash`
Interpolated Time's and Date's should respect default formatting options and locale.
Rails, for example, passes Date and Time ActiveRecord attributes to I18n::t.
(This may also avoid triggering some deprecation warnings in Rails eg: https://github.com/rails/rails/issues/48960)
@davidgumberg Would you mind adding a test for this please?
@radar Thanks for the review, I've added some tests.
Is this behavior desired?
test "interpolation: given a Date with no default format set it raises I18n::MissingTranslationData" do
assert_raises(I18n::MissingTranslationData) do
date = Date.new(2008, 3, 1)
interpolate(:default => '%{date}', :date => date)
end
end
I am not really sure how much code there is in the wild that passes Date's and Time's to I18n::t, but this will break anything that does so without a :default format set for Date/Time which might be too aggressive?
The gentler alternative would be to default to sprintf as before if a format is not present.
If you have a chance, let me know what you think.