mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #21632 from kirs/feature/translation-helper-include-interpolation
Include interpolation values to translation_missing helper
This commit is contained in:
commit
77370f27db
2 changed files with 14 additions and 1 deletions
|
@ -88,7 +88,14 @@ module ActionView
|
|||
raise e if raise_error
|
||||
|
||||
keys = I18n.normalize_keys(e.locale, e.key, e.options[:scope])
|
||||
content_tag('span', keys.last.to_s.titleize, :class => 'translation_missing', :title => "translation missing: #{keys.join('.')}")
|
||||
title = "translation missing: #{keys.join('.')}"
|
||||
|
||||
interpolations = options.except(:default)
|
||||
if interpolations.any?
|
||||
title << ", " << interpolations.map { |k, v| "#{k}: #{ERB::Util.html_escape(v)}" }.join(', ')
|
||||
end
|
||||
|
||||
content_tag('span', keys.last.to_s.titleize, class: 'translation_missing', title: title)
|
||||
end
|
||||
end
|
||||
alias :t :translate
|
||||
|
|
|
@ -60,6 +60,12 @@ class TranslationHelperTest < ActiveSupport::TestCase
|
|||
assert_equal true, translate(:"translations.missing").html_safe?
|
||||
end
|
||||
|
||||
def test_returns_missing_translation_message_with_unescaped_interpolation
|
||||
expected = '<span class="translation_missing" title="translation missing: en.translations.missing, name: Kir, year: 2015, vulnerable: &quot; onclick=&quot;alert()&quot;">Missing</span>'
|
||||
assert_equal expected, translate(:"translations.missing", name: "Kir", year: "2015", vulnerable: %{" onclick="alert()"})
|
||||
assert translate(:"translations.missing").html_safe?
|
||||
end
|
||||
|
||||
def test_raises_missing_translation_message_with_raise_config_option
|
||||
ActionView::Base.raise_on_missing_translations = true
|
||||
|
||||
|
|
Loading…
Reference in a new issue