This commit is contained in:
Andras Schmelczer 2026-05-14 22:07:14 +01:00
parent 084117cea8
commit a8de0a614d
36 changed files with 1329 additions and 522 deletions

View file

@ -34,17 +34,31 @@ function getStoredLanguage(): LanguageCode | null {
}
}
function getUrlLanguage(): LanguageCode | null {
try {
if (typeof window === 'undefined') return null;
const value = new URLSearchParams(window.location.search).get('lang');
return value ? toSupportedLanguage(value) : null;
} catch {
return null;
}
}
function getBrowserLanguages(): readonly string[] {
if (typeof navigator === 'undefined') return [];
return navigator.languages?.length ? navigator.languages : [navigator.language];
}
function detectLanguage(): LanguageCode {
// 1. Explicit user choice (persisted from the language dropdown)
// 1. Explicit URL language, used by generated screenshot/OG image URLs.
const urlLanguage = getUrlLanguage();
if (urlLanguage) return urlLanguage;
// 2. Explicit user choice (persisted from the language dropdown)
const stored = getStoredLanguage();
if (stored) return stored;
// 2. Browser preference (navigator.languages falls back to navigator.language)
// 3. Browser preference (navigator.languages falls back to navigator.language)
for (const tag of getBrowserLanguages()) {
const language = toSupportedLanguage(tag);
if (language) return language;