diff options
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/abstract_controller/rendering.rb | 3 | ||||
-rw-r--r-- | actionpack/lib/action_view/lookup_context.rb | 13 |
2 files changed, 11 insertions, 5 deletions
diff --git a/actionpack/lib/abstract_controller/rendering.rb b/actionpack/lib/abstract_controller/rendering.rb index 98c8c5fa67..d2db366140 100644 --- a/actionpack/lib/abstract_controller/rendering.rb +++ b/actionpack/lib/abstract_controller/rendering.rb @@ -24,8 +24,7 @@ module AbstractController end def locale=(value) - @i18n_config.locale = value - @lookup_context.update_details(:locale => @i18n_config.locale) + @lookup_context.locale = value end end diff --git a/actionpack/lib/action_view/lookup_context.rb b/actionpack/lib/action_view/lookup_context.rb index 6e61d85dcc..7021342b4a 100644 --- a/actionpack/lib/action_view/lookup_context.rb +++ b/actionpack/lib/action_view/lookup_context.rb @@ -58,7 +58,7 @@ module ActionView def initialize(view_paths, details = {}) @details, @details_key = { :handlers => default_handlers }, nil - @frozen_formats = false + @frozen_formats, @skip_default_locale = false, false self.view_paths = view_paths self.update_details(details, true) end @@ -147,7 +147,13 @@ module ActionView super(value) end - # Overload locale to return a symbol instead of array + # Do not use the default locale on template lookup. + def skip_default_locale! + @skip_default_locale = true + self.locale = nil + end + + # Overload locale to return a symbol instead of array. def locale @details[:locale].first end @@ -160,7 +166,8 @@ module ActionView config = I18n.config.respond_to?(:i18n_config) ? I18n.config.i18n_config : I18n.config config.locale = value end - super(_locale_defaults) + + super(@skip_default_locale ? I18n.locale : _locale_defaults) end # Update the details keys by merging the given hash into the current |