Accept Language Parser

1.5.0 · maintenance · verified Wed Apr 22

The `accept-language-parser` package provides utilities for parsing the `Accept-Language` HTTP header, which clients send to indicate their preferred human languages. It processes the header string and produces an array of language objects, each containing a `code`, optional `region`, and `quality` value, sorted in descending order of quality. Additionally, it offers a `pick` function to determine the best matching language from a list of supported languages, with an optional 'loose' matching mode. The current stable version is 1.5.0. This package appears to be in a maintenance state, as its last release was over eight years ago, suggesting infrequent updates but continued functionality. Its primary differentiation lies in its focused API for HTTP `Accept-Language` header processing, rather than a broader internationalization library.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates parsing an `Accept-Language` header and picking the best matching language from a supported list, including an example of loose matching.

const parser = require('accept-language-parser');

// Example 1: Parsing an Accept-Language header
const acceptLanguageHeader = 'en-GB,en-US;q=0.9,fr-CA;q=0.7,en;q=0.8';
console.log(`\n--- Parsing Header: ${acceptLanguageHeader} ---\n`);
const parsedLanguages = parser.parse(acceptLanguageHeader);
console.log('Parsed Languages (sorted by quality):', parsedLanguages);
/* Expected Output:
[
  { code: 'en', region: 'GB', quality: 1 },
  { code: 'en', region: 'US', quality: 0.9 },
  { code: 'en', region: undefined, quality: 0.8 },
  { code: 'fr', region: 'CA', quality: 0.7 }
]
*/

// Example 2: Picking the best language from supported list
const supportedLanguages = ['fr-CA', 'fr-FR', 'fr', 'en-US', 'en'];
console.log(`\n--- Picking from Supported: [${supportedLanguages.join(', ')}] ---\n`);
const bestMatch = parser.pick(supportedLanguages, acceptLanguageHeader);
console.log('Best match (strict):', bestMatch);
// Expected Output: fr-CA

// Example 3: Picking with loose matching
const supportedLanguagesLoose = ['fr', 'en'];
console.log(`\n--- Picking with Loose Matching from Supported: [${supportedLanguagesLoose.join(', ')}] ---\n`);
const bestMatchLoose = parser.pick(supportedLanguagesLoose, acceptLanguageHeader, { loose: true });
console.log('Best match (loose):', bestMatchLoose);
// Expected Output: fr

view raw JSON →