parseLocale() — astro Function Reference
Architecture documentation for the parseLocale() function in utils.ts from the astro codebase.
Entity Profile
Dependency Diagram
graph TD 1a809798_395b_d867_2e96_5b1a1a9e175e["parseLocale()"] 7b0bb4ed_570d_ff47_83a8_9e0495974e66["utils.ts"] 1a809798_395b_d867_2e96_5b1a1a9e175e -->|defined in| 7b0bb4ed_570d_ff47_83a8_9e0495974e66 00c5b8fa_8c67_f870_01bf_f0ab44993c3a["computePreferredLocale()"] 00c5b8fa_8c67_f870_01bf_f0ab44993c3a -->|calls| 1a809798_395b_d867_2e96_5b1a1a9e175e 86433feb_fb59_c31d_d344_6ab7e82d0967["computePreferredLocaleList()"] 86433feb_fb59_c31d_d344_6ab7e82d0967 -->|calls| 1a809798_395b_d867_2e96_5b1a1a9e175e style 1a809798_395b_d867_2e96_5b1a1a9e175e fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/astro/src/i18n/utils.ts lines 17–61
export function parseLocale(header: string): BrowserLocale[] {
// Any language, early return
if (header === '*') {
return [{ locale: header, qualityValue: undefined }];
}
const result: BrowserLocale[] = [];
// we split by `,` and trim the white spaces
const localeValues = header.split(',').map((str) => str.trim());
for (const localeValue of localeValues) {
// split the locale name from the quality value
const split = localeValue.split(';').map((str) => str.trim());
const localeName: string = split[0];
const qualityValue: string | undefined = split[1];
if (!split) {
// invalid value
continue;
}
// we check if the quality value is present, and it is actually `q=`
if (qualityValue && qualityValue.startsWith('q=')) {
const qualityValueAsFloat = Number.parseFloat(qualityValue.slice('q='.length));
// The previous operation can return a `NaN`, so we check if it is a safe operation
if (Number.isNaN(qualityValueAsFloat) || qualityValueAsFloat > 1) {
result.push({
locale: localeName,
qualityValue: undefined,
});
} else {
result.push({
locale: localeName,
qualityValue: qualityValueAsFloat,
});
}
} else {
result.push({
locale: localeName,
qualityValue: undefined,
});
}
}
return result;
}
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does parseLocale() do?
parseLocale() is a function in the astro codebase, defined in packages/astro/src/i18n/utils.ts.
Where is parseLocale() defined?
parseLocale() is defined in packages/astro/src/i18n/utils.ts at line 17.
What calls parseLocale()?
parseLocale() is called by 2 function(s): computePreferredLocale, computePreferredLocaleList.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free