Files
immich/web/src/lib/managers/language-manager.svelte.ts

27 lines
659 B
TypeScript
Raw Normal View History

2025-04-28 09:53:53 -04:00
import { langs } from '$lib/constants';
import { eventManager } from '$lib/managers/event-manager.svelte';
2025-04-28 14:48:33 -04:00
import { lang } from '$lib/stores/preferences.store';
2025-04-28 09:53:53 -04:00
class LanguageManager {
2025-04-28 14:48:33 -04:00
constructor() {
eventManager.on('app.init', () => lang.subscribe((lang) => this.setLanguage(lang)));
}
2025-04-28 09:53:53 -04:00
rtl = $state(false);
setLanguage(code: string) {
const item = langs.find((item) => item.code === code);
if (!item) {
return;
}
this.rtl = item.rtl ?? false;
document.body.setAttribute('dir', item.rtl ? 'rtl' : 'ltr');
eventManager.emit('language.change', item);
}
}
export const languageManager = new LanguageManager();