Accept-Language Negotiation example does not make sense to me
alanhogan opened this issue · comments
In the example of Accept-Language Negotiation, the example is:
negotiator = new Negotiator(request)
availableLanguages = 'en', 'es', 'fr'
// Let's say Accept-Language header is 'en;q=0.8, es, pt'
negotiator.languages()
// -> ['es', 'pt', 'en']
negotiator.languages(availableLanguages)
// -> ['es', 'en']
language = negotiator.language(availableLanguages)
// -> 'es'
Now, I see that the user's most-preferred language is English (en
), and English is an availableLanguage, so why would we resolve to Spanish (es
)?
Now, I see that the user's most-preferred language is English (en), and English is an availableLanguage, so why would we resolve to Spanish (es)?
The header en;q=0.8, es, pt
means that es = 1, pt = 1, and en = 0.8, making en (English) the least preferred. The lack of the q
signifies 1, which is greater than 0.8.
You can read me about this in http://tools.ietf.org/html/rfc7231#section-5.3.5 and http://tools.ietf.org/html/rfc7231#section-5.3.1 :)
Ah, thanks. Definitely missed that.