# Allow us to override i18n keys based on the current site you're viewing.
module MultisiteI18n

  class << self

    # It would be nice if there was an easier way to detect if a key is missing.
    def translation_or_nil(key, opts)
      missing_text = "missing multisite translation"
      result = I18n.t(key, opts.merge(default: missing_text))
      return nil if result == missing_text
      result
    end

    def site_translate(current_site, key, opts=nil)
      opts ||= {}
      translation = MultisiteI18n.translation_or_nil("#{current_site || ""}.#{key}", opts)
      if translation.blank?
        return I18n.t(key, opts)
      else
        return translation
      end
    end

    def t(*args)
      MultisiteI18n.site_translate(RailsMultisite::ConnectionManagement.current_db, *args)
    end

    alias :translate :t
  end

end