mirror of
https://github.com/immich-app/immich
synced 2026-08-15 13:03:57 +00:00
28 lines
671 B
TypeScript
28 lines
671 B
TypeScript
import { eventManager } from '$lib/managers/event-manager.svelte';
|
|
import { lang } from '$lib/stores/preferences.store';
|
|
import { langs } from '$lib/utils/i18n';
|
|
|
|
class LanguageManager {
|
|
constructor() {
|
|
eventManager.on({
|
|
AppInit: () => 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('LanguageChange', item);
|
|
}
|
|
}
|
|
|
|
export const languageManager = new LanguageManager();
|