fix: persist language selection and enforce search keys

This commit is contained in:
2026-02-10 00:54:29 +01:00
parent 040f0f7878
commit 6c15295cec

View File

@@ -4498,7 +4498,8 @@ const requiredKeys = [
'custom.start','custom.sizeError','win.title','win.message','win.time','win.playAgain', 'custom.start','custom.sizeError','win.title','win.message','win.time','win.playAgain',
'win.shareTitle','win.shareText','win.shareX','win.shareFacebook','win.shareWhatsapp', 'win.shareTitle','win.shareText','win.shareX','win.shareFacebook','win.shareWhatsapp',
'win.shareDownload','pwa.installTitle','pwa.installMobile','pwa.installDesktop', 'win.shareDownload','pwa.installTitle','pwa.installMobile','pwa.installDesktop',
'language.label','theme.label','theme.system','theme.light','theme.dark' 'language.label','theme.label','theme.system','theme.light','theme.dark',
'language.searchLabel','language.searchPlaceholder'
]; ];
const supportedLocales = Object.keys(messages).filter( const supportedLocales = Object.keys(messages).filter(
@@ -4506,6 +4507,12 @@ const supportedLocales = Object.keys(messages).filter(
); );
const detectLocale = () => { const detectLocale = () => {
if (typeof localStorage !== 'undefined') {
const saved = localStorage.getItem('locale');
if (saved && supportedLocales.includes(saved)) {
return saved;
}
}
if (typeof navigator === 'undefined') return 'en'; if (typeof navigator === 'undefined') return 'en';
const browserLocale = (navigator.languages && navigator.languages[0]) || navigator.language || 'en'; const browserLocale = (navigator.languages && navigator.languages[0]) || navigator.language || 'en';
let short = browserLocale.toLowerCase().split('-')[0]; let short = browserLocale.toLowerCase().split('-')[0];
@@ -4541,6 +4548,9 @@ const t = (key, params) => {
const setLocale = (value) => { const setLocale = (value) => {
locale.value = supportedLocales.includes(value) ? value : 'en'; locale.value = supportedLocales.includes(value) ? value : 'en';
if (typeof localStorage !== 'undefined') {
localStorage.setItem('locale', locale.value);
}
if (typeof document !== 'undefined') { if (typeof document !== 'undefined') {
document.documentElement.lang = locale.value; document.documentElement.lang = locale.value;
document.title = t('app.title'); document.title = t('app.title');