Permalink
Browse files

translation method of TranslationHelper module returns always SafeBuf…

…fer [#4194 status:resolved]

Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
  • Loading branch information...
1 parent 9659d18 commit 12bf636461e3aab661119ceb3a104cfb70a11666 @spastorino spastorino committed with jeremy Mar 16, 2010
View
2 actionpack/lib/action_view/helpers/translation_helper.rb
@@ -13,7 +13,7 @@ module TranslationHelper
def translate(key, options = {})
options[:raise] = true
translation = I18n.translate(scope_key_by_partial(key), options)
- translation.respond_to?(:html_safe) ? translation.html_safe : translation
+ (translation.respond_to?(:join) ? translation.join : translation).html_safe
rescue I18n::MissingTranslationData => e
keys = I18n.normalize_keys(e.locale, e.key, e.options[:scope])
content_tag('span', keys.join(', '), :class => 'translation_missing')
View
1 actionpack/test/fixtures/test/array_translation.erb
@@ -0,0 +1 @@
+<%= t(['foo', 'bar']) %>
View
9 actionpack/test/template/translation_helper_test.rb
@@ -20,7 +20,14 @@ def test_returns_missing_translation_message_wrapped_into_span
def test_translation_of_an_array
I18n.expects(:translate).with(["foo", "bar"], :raise => true).returns(["foo", "bar"])
- assert_equal ["foo", "bar"], translate(["foo", "bar"])
+ assert_equal "foobar", translate(["foo", "bar"])
+ end
+
+ def test_translation_of_an_array_with_html
+ expected = '<a href="#">foo</a><a href="#">bar</a>'
+ I18n.expects(:translate).with(["foo", "bar"], :raise => true).returns(['<a href="#">foo</a>', '<a href="#">bar</a>'])
+ @view = ActionView::Base.new(ActionController::Base.view_paths, {})
+ assert_equal expected, @view.render(:file => "test/array_translation")
end
def test_delegates_localize_to_i18n

0 comments on commit 12bf636

Please sign in to comment.