Home / Function/ computePreferredLocale() — astro Function Reference

computePreferredLocale() — astro Function Reference

Architecture documentation for the computePreferredLocale() function in utils.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  00c5b8fa_8c67_f870_01bf_f0ab44993c3a["computePreferredLocale()"]
  7b0bb4ed_570d_ff47_83a8_9e0495974e66["utils.ts"]
  00c5b8fa_8c67_f870_01bf_f0ab44993c3a -->|defined in| 7b0bb4ed_570d_ff47_83a8_9e0495974e66
  b7a4b27b_a1e0_4ff4_db13_350baa64114e["sortAndFilterLocales()"]
  00c5b8fa_8c67_f870_01bf_f0ab44993c3a -->|calls| b7a4b27b_a1e0_4ff4_db13_350baa64114e
  1a809798_395b_d867_2e96_5b1a1a9e175e["parseLocale()"]
  00c5b8fa_8c67_f870_01bf_f0ab44993c3a -->|calls| 1a809798_395b_d867_2e96_5b1a1a9e175e
  style 00c5b8fa_8c67_f870_01bf_f0ab44993c3a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/src/i18n/utils.ts lines 86–113

export function computePreferredLocale(request: Request, locales: Locales): string | undefined {
	const acceptHeader = request.headers.get('Accept-Language');
	let result: string | undefined = undefined;
	if (acceptHeader) {
		const browserLocaleList = sortAndFilterLocales(parseLocale(acceptHeader), locales);

		const firstResult = browserLocaleList.at(0);
		if (firstResult && firstResult.locale !== '*') {
			for (const currentLocale of locales) {
				if (typeof currentLocale === 'string') {
					if (normalizeTheLocale(currentLocale) === normalizeTheLocale(firstResult.locale)) {
						result = currentLocale;
						break;
					}
				} else {
					for (const currentCode of currentLocale.codes) {
						if (normalizeTheLocale(currentCode) === normalizeTheLocale(firstResult.locale)) {
							result = currentCode;
							break;
						}
					}
				}
			}
		}
	}

	return result;
}

Domain

Subdomains

Frequently Asked Questions

What does computePreferredLocale() do?
computePreferredLocale() is a function in the astro codebase, defined in packages/astro/src/i18n/utils.ts.
Where is computePreferredLocale() defined?
computePreferredLocale() is defined in packages/astro/src/i18n/utils.ts at line 86.
What does computePreferredLocale() call?
computePreferredLocale() calls 2 function(s): parseLocale, sortAndFilterLocales.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free