now choose the language already added by C-Keen on Thu Apr 17 12:01:07 2014

;; for bogus values: en-US, en,da, en-gb;q=0.8, en;q=0.7

(define (preferred-languages accept-language-contents)
  (let ((qualities (fold (lambda (x s)
                           (cons
                            (cons (get-value x)
                                  (or
                                   (get-param 'q x)
                                   1))
                            s))
                         '()
                         accept-language-contents)))
    (sort qualities (lambda (a b)
                      (> (cdr a) (cdr b))))))

(preferred-languages (header-contents 'accept-language (request-headers (current-request))))

;; gets ((en-us . 1) (en . 0.8) (da . 0.6) (en-gb . 0.4) (en . 0.2))