1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Add safe html support to arrays of translations

This commit is contained in:
Juan Broullon 2018-07-03 11:50:02 -04:00
parent 242ae67ebe
commit 42c353705a
2 changed files with 10 additions and 4 deletions

View file

@ -85,8 +85,11 @@ module ActionView
end end
end end
translation = I18n.translate(scope_key_by_partial(key), html_safe_options.merge(raise: i18n_raise)) translation = I18n.translate(scope_key_by_partial(key), html_safe_options.merge(raise: i18n_raise))
if translation.respond_to?(:map)
translation.map { |element| element.respond_to?(:html_safe) ? element.html_safe : element }
else
translation.respond_to?(:html_safe) ? translation.html_safe : translation translation.respond_to?(:html_safe) ? translation.html_safe : translation
end
else else
I18n.translate(scope_key_by_partial(key), options.merge(raise: i18n_raise)) I18n.translate(scope_key_by_partial(key), options.merge(raise: i18n_raise))
end end

View file

@ -164,8 +164,11 @@ class TranslationHelperTest < ActiveSupport::TestCase
assert_equal "<a>Other &lt;One&gt;</a>", translate(:'translations.count_html', count: "<One>") assert_equal "<a>Other &lt;One&gt;</a>", translate(:'translations.count_html', count: "<One>")
end end
def test_translation_returning_an_array_ignores_html_suffix def test_translate_marks_array_of_translations_with_a_html_safe_suffix_as_safe_html
assert_equal ["foo", "bar"], translate(:'translations.array_html') translate(:'translations.array_html').tap do |translated|
assert_equal %w( foo bar ), translated
assert translated.all?(&:html_safe?)
end
end end
def test_translate_with_default_named_html def test_translate_with_default_named_html