Module: ActiveSupport::HtmlSafeTranslation
Do not use. This module is for internal use only.
Relationships & Source Files | |
Defined in: | activesupport/lib/active_support/html_safe_translation.rb |
Instance Method Summary
Instance Method Details
#html_escape_translation_options(options) (private)
[ GitHub ]# File 'activesupport/lib/active_support/html_safe_translation.rb', line 35
def ( ) .each do |name, value| unless i18n_option?(name) || (name == :count && value.is_a?(Numeric)) [name] = ERB::Util.html_escape(value.to_s) end end end
#html_safe_translation(translation) (private)
[ GitHub ]# File 'activesupport/lib/active_support/html_safe_translation.rb', line 48
def html_safe_translation(translation) 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 end end
#html_safe_translation_key?(key) ⇒ Boolean
# File 'activesupport/lib/active_support/html_safe_translation.rb', line 30
def html_safe_translation_key?(key) /(?:_|\b)html\z/.match?(key) end
#i18n_option?(name) ⇒ Boolean
(private)
# File 'activesupport/lib/active_support/html_safe_translation.rb', line 43
def i18n_option?(name) (@i18n_option_names ||= I18n::RESERVED_KEYS.to_set).include?(name) end
#translate(key, **options)
[ GitHub ]# File 'activesupport/lib/active_support/html_safe_translation.rb', line 7
def translate(key, ** ) if html_safe_translation_key?(key) = ( ) exception = false exception_handler = ->(*args) do exception = true I18n.exception_handler.call(*args) end translation = I18n.translate(key, **, exception_handler: exception_handler) if exception translation else html_safe_translation(translation) end else I18n.translate(key, ** ) end end