Kind: Function
Source: src/middleware/language/language.ts
Part of: Middleware
Parse Accept-Language header values with quality scores
parseAcceptLanguage parses an Accept-Language header into language preferences and accounts for quality-score parameters. It is used by language middleware to determine the client’s preferred language order before locale selection.
Signature
tsfunction parseAcceptLanguage(header: string): Array<{ lang: string; q: number }>
Parameters
| Name | Type |
|---|---|
header | string |
Returns: Array<{ lang: string; q: number }>
Diagram
mermaidgraph LR Header[Accept-Language header] --> Parse[parseAcceptLanguage] Parse --> Entries[Language entries with quality scores] Entries --> Ordered[Preferred language order] Ordered --> Middleware[Language middleware]
Usage
tsimport { parseAcceptLanguage } from "./middleware/language/language";
const header = request.headers.get("accept-language") ?? "";
const preferredLanguages = parseAcceptLanguage(header);
// Pass the parsed preferences to locale-selection logic.
const locale = selectSupportedLocale(preferredLanguages);
AI Coding Instructions
- Keep parsing aligned with the
Accept-Languageheader format: comma-separated language ranges with optional quality parameters. - Preserve quality-score ordering when changing parsing logic, since downstream locale selection depends on preference order.
- Handle missing or empty header values before calling the function when integrating with request middleware.
- Keep locale matching separate from header parsing; this function should only interpret client preferences.
Was this page helpful?