diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG index 819a67adfa..903c7b6e76 100644 --- a/activesupport/CHANGELOG +++ b/activesupport/CHANGELOG @@ -1,3 +1,8 @@ +*2.2.1 [RC2 or 2.2 final]* + +* Make I18n::Backend::Simple reload its translations in development mode [DHH] + + *2.2.0 [RC1] (October 24th, 2008)* * TimeWithZone#freeze: preload instance variables so that we can actually freeze [Geoff Buesing] diff --git a/activesupport/lib/active_support/vendor/i18n-0.0.1/i18n/backend/simple.rb b/activesupport/lib/active_support/vendor/i18n-0.0.1/i18n/backend/simple.rb index 1fd75de74f..f34e880bfd 100644 --- a/activesupport/lib/active_support/vendor/i18n-0.0.1/i18n/backend/simple.rb +++ b/activesupport/lib/active_support/vendor/i18n-0.0.1/i18n/backend/simple.rb @@ -6,6 +6,10 @@ module I18n INTERPOLATION_RESERVED_KEYS = %w(scope default) MATCH = /(\\\\)?\{\{([^\}]+)\}\}/ + def initialize + Dispatcher.to_prepare { reload } + end + # Accepts a list of paths to translation files. Loads translations from # plain Ruby (*.rb) or YAML files (*.yml). See #load_rb and #load_yml # for details. @@ -69,8 +73,11 @@ module I18n @initialized ||= false end - protected + def reload + @initialized = false + end + protected def init_translations load_translations(*I18n.load_path) @initialized = true @@ -88,7 +95,7 @@ module I18n def lookup(locale, key, scope = []) return unless key init_translations unless initialized? - keys = I18n.send :normalize_translation_keys, locale, key, scope + keys = I18n.send(:normalize_translation_keys, locale, key, scope) keys.inject(translations) do |result, k| if (x = result[k.to_sym]).nil? return nil