class ReeI18n::T
def call(key = nil, context = {}, **options)
def call(key = nil, context = {}, **options) context.each do |k, _| if RESERVED_KEYS.include?(k) raise ArgumentError, "translation context contains reserved key :#{k}" end end opts = context.merge(options) default_by_locale = opts.delete(:default_by_locale) if default_by_locale && !opts[:default] opts[:default] = DEFAULT_BY_LOCALE end opts[:throw] ||= false opts[:raise] ||= false opts[:locale] ||= nil result = I18n.t(key, **opts) if result == DEFAULT_BY_LOCALE result = call( key, context, **except( options.merge(locale: default_by_locale), [:default_by_locale] ) ) end result end