jshttp / negotiator

An HTTP content negotiator for Node.js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

Ah, thanks. Definitely missed that.