From 99d54599215c2a8cea7e57f609e8e578043d71b2 Mon Sep 17 00:00:00 2001 From: Carl Lerche Date: Thu, 8 Apr 2010 18:11:26 -0700 Subject: Fixed that default locale templates should be used if the current locale template is missing [DHH] --- actionpack/CHANGELOG | 2 ++ actionpack/lib/action_view/lookup_context.rb | 4 ++-- .../test/controller/localized_templates_test.rb | 22 ++++++++++++++++++++++ .../test/fixtures/localized/hello_world.de.html | 1 + .../test/fixtures/localized/hello_world.en.html | 1 + 5 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 actionpack/test/controller/localized_templates_test.rb create mode 100644 actionpack/test/fixtures/localized/hello_world.de.html create mode 100644 actionpack/test/fixtures/localized/hello_world.en.html (limited to 'actionpack') diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 84481d0194..49ca36cc26 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *Rails 3.0.0 [Edge] (pending)* +* Fixed that default locale templates should be used if the current locale template is missing [DHH] + * Added all the new HTML5 form types as individual form tag methods (search, url, number, etc) #3646 [Stephen Celis] * Changed the object used in routing constraints to be an instance of diff --git a/actionpack/lib/action_view/lookup_context.rb b/actionpack/lib/action_view/lookup_context.rb index 9b59aac0eb..6e61d85dcc 100644 --- a/actionpack/lib/action_view/lookup_context.rb +++ b/actionpack/lib/action_view/lookup_context.rb @@ -38,7 +38,7 @@ module ActionView end register_detail(:formats) { Mime::SET.symbols } - register_detail(:locale) { [I18n.locale] } + register_detail(:locale) { [I18n.locale, I18n.default_locale] } class DetailsKey #:nodoc: alias :eql? :equal? @@ -160,7 +160,7 @@ module ActionView config = I18n.config.respond_to?(:i18n_config) ? I18n.config.i18n_config : I18n.config config.locale = value end - super(I18n.locale) + super(_locale_defaults) end # Update the details keys by merging the given hash into the current diff --git a/actionpack/test/controller/localized_templates_test.rb b/actionpack/test/controller/localized_templates_test.rb new file mode 100644 index 0000000000..41ff2f3809 --- /dev/null +++ b/actionpack/test/controller/localized_templates_test.rb @@ -0,0 +1,22 @@ +require 'abstract_unit' + +class LocalizedController < ActionController::Base + def hello_world + end +end + +class LocalizedTemplatesTest < ActionController::TestCase + tests LocalizedController + + def test_localized_template_is_used + I18n.locale = :de + get :hello_world + assert_equal "Gutten Tag", @response.body + end + + def test_default_locale_template_is_used_when_locale_is_missing + I18n.locale = :dk + get :hello_world + assert_equal "Hello World", @response.body + end +end \ No newline at end of file diff --git a/actionpack/test/fixtures/localized/hello_world.de.html b/actionpack/test/fixtures/localized/hello_world.de.html new file mode 100644 index 0000000000..4727d7a7e0 --- /dev/null +++ b/actionpack/test/fixtures/localized/hello_world.de.html @@ -0,0 +1 @@ +Gutten Tag \ No newline at end of file diff --git a/actionpack/test/fixtures/localized/hello_world.en.html b/actionpack/test/fixtures/localized/hello_world.en.html new file mode 100644 index 0000000000..5e1c309dae --- /dev/null +++ b/actionpack/test/fixtures/localized/hello_world.en.html @@ -0,0 +1 @@ +Hello World \ No newline at end of file -- cgit v1.2.3