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' }