module RouteTranslator

def available_locales

def available_locales
  locales = config.available_locales
  if locales.empty?
    I18n.available_locales.dup
  else
    locales.map(&:to_sym)
  end
end

def check_deprecations; end

def check_deprecations; end

def config

def config
  @config ||= Configuration.new
  DEFAULT_CONFIGURATION.each do |option, value|
    @config[option] ||= value
  end
  yield @config if block_given?
  resolve_host_locale_config_conflicts if @config.host_locales.present?
  check_deprecations
  @config
end

def deprecator

def deprecator
  @deprecator ||= ActiveSupport::Deprecation.new(RouteTranslator::VERSION, 'RouteTranslator')
end

def locale_from_params(params)

def locale_from_params(params)
  locale = params[config.locale_param_key]&.to_sym
  locale if I18n.available_locales.include?(locale)
end

def locale_from_request(request)

def locale_from_request(request)
  locale_from_params(request.params) || Host.locale_from_host(request.host)
end

def locale_param_key

def locale_param_key
  config.locale_param_key
end

def reset_config

def reset_config
  @config = nil
  config
end

def resolve_host_locale_config_conflicts

def resolve_host_locale_config_conflicts
  @config.force_locale                        = false
  @config.generate_unlocalized_routes         = false
  @config.generate_unnamed_unlocalized_routes = false
  @config.hide_locale                         = true
end