I need a code example or library which would parse Accept-Language header and return me preferred language.
RFC2616 states that:
The Accept-Language request-header field is similar to Accept, but
restricts the set of natural languages that are preferred as a
response to the request. Language tags are defined in section 3.10.Accept-Language = "Accept-Language" ":" 1#( language-range [ ";" "q" "=" qvalue ] ) language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" )Each language-range MAY be given an associated quality value which
represents an estimate of the user’s preference for the languages
specified by that range. The quality value defaults to “q=1”.
Further reading shows that there are too many “optional”, “should”, “may” and other turns of speech that prevent me from reinventing the wheel – all I want to know is what language user prefers, any browser answers this question billion times a day.
Any code snippet in any language (except Lisp and Assembler please) would be helpful.
Many thanks in advance!
Try this, its in PHP but using the same regex i’m sure its adaptable to any language :
produces a sorted array with preferred language first :
From example
ACCEPT_LANGUAGEheader :en-ca,en;q=0.8,en-us;q=0.6,de-de;q=0.4,de;q=0.2Working example here