mirror of
https://github.com/immich-app/immich.git
synced 2025-11-11 00:56:54 -05:00
27 lines
659 B
TypeScript
27 lines
659 B
TypeScript
import { langs } from '$lib/constants';
|
|
import { eventManager } from '$lib/managers/event-manager.svelte';
|
|
import { lang } from '$lib/stores/preferences.store';
|
|
|
|
class LanguageManager {
|
|
constructor() {
|
|
eventManager.on('app.init', () => lang.subscribe((lang) => this.setLanguage(lang)));
|
|
}
|
|
|
|
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();
|