Monkey patch rails to work around stupid I18n bug where it looks up

time.formats in the locale and then looks for the requested format in
that hash, thereby not doing fallback correctly. To make things worse
it then defaults to just using the requested format name as the format...
This commit is contained in:
Tom Hughes 2010-03-01 00:55:27 +00:00
parent 32326df602
commit 07172166da

View file

@ -2,3 +2,26 @@ require 'globalize/i18n/missing_translations_log_handler'
I18n.missing_translations_logger = Logger.new("#{RAILS_ROOT}/log/missing_translations.log")
I18n.exception_handler = :missing_translations_log_handler
module I18n
module Backend
class Simple
protected
alias_method :old_init_translations, :init_translations
def init_translations
old_init_translations
friendly = translate('en', 'time.formats.friendly')
available_locales.each do |locale|
time_formats = I18n.t('time.formats', :locale => locale)
unless time_formats.has_key?(:friendly)
store_translations(locale, :time => { :formats => { :friendly => friendly } })
end
end
end
end
end
end