From c22c9109509d3708c6cd7b6151017e73b2929a2a Mon Sep 17 00:00:00 2001 From: Aditya Sanghi Date: Tue, 16 Nov 2010 21:58:55 +0530 Subject: [PATCH] leading slash in partial name causes translations to go awry [5976: resolved] --- .../lib/action_view/helpers/translation_helper.rb | 2 +- .../test/template/translation_helper_test.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletions(-) diff --git a/actionpack/lib/action_view/helpers/translation_helper.rb b/actionpack/lib/action_view/helpers/translation_helper.rb index 8574ca6..e80d73e 100644 --- a/actionpack/lib/action_view/helpers/translation_helper.rb +++ b/actionpack/lib/action_view/helpers/translation_helper.rb @@ -46,7 +46,7 @@ module ActionView def scope_key_by_partial(key) if key.to_s.first == "." if (path = @_template && @_template.virtual_path) - path.gsub(%r{/_?}, ".") + key.to_s + path.gsub(%r{^\/},'').gsub(%r{/_?}, ".") + key.to_s else raise "Cannot use t(#{key.inspect}) shortcut because path is not available" end diff --git a/actionpack/test/template/translation_helper_test.rb b/actionpack/test/template/translation_helper_test.rb index 7630805..196cb22 100644 --- a/actionpack/test/template/translation_helper_test.rb +++ b/actionpack/test/template/translation_helper_test.rb @@ -35,6 +35,12 @@ class TranslationHelperTest < ActiveSupport::TestCase assert_equal "helper", @view.render(:file => "test/translation") end + def test_scoping_by_partial_with_leading_slash + I18n.expects(:translate).with("test.translation.helper", :raise => true).returns("helper") + @view = ::ActionView::Base.new(ActionController::Base.view_paths, {}) + assert_equal "helper", @view.render(:file => "/test/translation") + end + def test_scoping_by_partial_of_an_array I18n.expects(:translate).with("test.scoped_translation.foo.bar", :raise => true).returns(["foo", "bar"]) @view = ::ActionView::Base.new(ActionController::Base.view_paths, {}) -- 1.7.1