tethys.backend/resources/js/Stores/locale.ts
Arno Kaimbacher b06ccae603
Some checks failed
CI Pipeline / japa-tests (push) Failing after 1m2s
- added @adonisjs/mail
- mail_settings_controller for setting smtp settings
- added view ror rjecting dataset for editor
- added new model AppConfig for stroing appwide config values
- better validate_chesum.ts command with process chunking
- added vue3 apps 'BasicSettings' like email, profile settings
- started with 2 multilingual capabilities
- npm updates
2024-09-16 17:59:46 +02:00

42 lines
1.3 KiB
TypeScript

// src/stores/locale.ts
import { defineStore } from 'pinia';
import dayjs from '@/utils/dayjs';
import { getBrowserLocale } from '@/utils/tethyscloud-l10n';
export const LocaleStore = defineStore('locale', {
state: () => ({
locale: 'en',
}),
actions: {
setLocale(locale: string) {
if (typeof localStorage !== 'undefined') {
localStorage.setItem('app-locale', locale);
}
this.locale = locale;
dayjs.locale(locale); // Update dayjs locale
},
initializeLocale() {
let locale = 'en';
// Check if localStorage is available and has a saved locale
if (typeof localStorage !== 'undefined') {
const savedLocale = localStorage.getItem('app-locale');
if (savedLocale) {
locale = savedLocale;
} else {
// Get locale from the browser if not saved in localStorage
locale = getBrowserLocale({ languageCodeOnly: true });
}
} else {
// Fallback to the browser locale if localStorage is not available
locale = getBrowserLocale({ languageCodeOnly: true });
}
this.setLocale(locale);
},
},
});