Module: ViewComponent::Translatable
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/view_component/translatable.rb
Defined Under Namespace
Classes: I18nBackend
Constant Summary collapse
- HTML_SAFE_TRANSLATION_KEY =
/(?:_|\b)html\z/.freeze
Instance Method Summary collapse
-
#i18n_scope ⇒ Object
Exposes .i18n_scope as an instance method.
- #translate(key = nil, **options) ⇒ Object (also: #t)
Instance Method Details
#i18n_scope ⇒ Object
Exposes .i18n_scope as an instance method
92 93 94 |
# File 'lib/view_component/translatable.rb', line 92 def i18n_scope self.class.i18n_scope end |
#translate(key = nil, **options) ⇒ Object Also known as: t
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/view_component/translatable.rb', line 65 def translate(key = nil, **) return super unless i18n_backend return key.map { |k| translate(k, **) } if key.is_a?(Array) locale = .delete(:locale) || ::I18n.locale key = key&.to_s unless key.is_a?(String) key = "#{i18n_scope}#{key}" if key.start_with?(".") translated = catch(:exception) do i18n_backend.translate(locale, key, ) end # Fallback to the global translations if translated.is_a? ::I18n::MissingTranslation return super(key, locale: locale, **) end if HTML_SAFE_TRANSLATION_KEY.match?(key) translated = translated.html_safe # rubocop:disable Rails/OutputSafety end translated end |