Files
cmms/vue/i18n.js
T
2026-09-08 23:34:18 +02:00

34 lines
886 B
JavaScript

import { createI18n } from 'vue-i18n'
export const SUPPORT_LOCALES = ['en', 'sl']
export const i18n = createI18n({
legacy: false,
locale: 'en',
fallbackLocale: 'en',
messages: {},
})
const loadedLocales = new Set()
async function loadLocaleMessages(locale) {
if (!loadedLocales.has(locale)) {
const messages = await import(`../locales/${locale}.json`)
i18n.global.setLocaleMessage(locale, messages.default)
loadedLocales.add(locale)
}
}
export async function setLocale(locale) {
await loadLocaleMessages(locale)
i18n.global.locale.value = locale
document.documentElement.setAttribute('lang', locale)
localStorage.setItem('locale', locale)
}
export function initialLocale() {
const saved = localStorage.getItem('locale')
const browser = navigator.language.split('-')[0]
return [saved, browser].find(l => SUPPORT_LOCALES.includes(l)) || 'en'
}