move language selection to store to ensure alignment between different language selectors (mobile and desktop)
Some checks failed
CI / update (push) Failing after 1m9s
Some checks failed
CI / update (push) Failing after 1m9s
This commit is contained in:
28
src/lib/stores/language.ts
Normal file
28
src/lib/stores/language.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import { writable } from 'svelte/store';
|
||||
|
||||
type Language = 'de' | 'en';
|
||||
|
||||
function createLanguageStore() {
|
||||
const { subscribe, set } = writable<Language>('de');
|
||||
|
||||
return {
|
||||
subscribe,
|
||||
set,
|
||||
init: () => {
|
||||
if (typeof window !== 'undefined') {
|
||||
const path = window.location.pathname;
|
||||
if (path.startsWith('/recipes')) {
|
||||
set('en');
|
||||
} else if (path.startsWith('/rezepte')) {
|
||||
set('de');
|
||||
} else if (path === '/') {
|
||||
// On main page, read from localStorage
|
||||
const preferredLanguage = localStorage.getItem('preferredLanguage');
|
||||
set(preferredLanguage === 'en' ? 'en' : 'de');
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export const languageStore = createLanguageStore();
|
||||
Reference in New Issue
Block a user