import { createI18n } from 'vue-i18n'; import en from '@/locales/en.json'; import fr from '@/locales/fr.json'; import de from '@/locales/de.json'; import es from '@/locales/es.json'; import pt from '@/locales/pt.json'; import it from '@/locales/it.json'; import ru from '@/locales/ru.json'; async function loadLocaleMessages(locale: string) { const messages = await fetch(`/locales/${locale}.json`).then(res => res.json()); return messages; } const wpLocale = window.loyalty_suite_admin_data?.locale || 'en'; const i18n = createI18n({ legacy: false, locale: wpLocale, fallbackLocale: 'en', messages: { en, fr, de, es, pt, it, ru }, }); export async function setLocale(locale: string) { const messages = await loadLocaleMessages(locale); i18n.global.setLocaleMessage(locale, messages); i18n.global.locale.value = locale; localStorage.setItem('locale', locale); } export default i18n;