Files
Apollo/src_assets/common/assets/web/locale.js
2024-08-30 06:17:02 +08:00

28 lines
845 B
JavaScript

import {createI18n} from "vue-i18n";
// Import only the fallback language files
import en from './public/assets/locale/en.json'
export default async function() {
let r = await (await fetch("/api/configLocale", { credentials: 'include' })).json();
let locale = r.locale ?? "en";
document.querySelector('html').setAttribute('lang', locale);
let messages = {
en
};
try {
if (locale !== 'en') {
let r = await (await fetch(`/assets/locale/${locale}.json`, { credentials: 'include' })).json();
messages[locale] = r;
}
} catch (e) {
console.error("Failed to download translations", e);
}
const i18n = createI18n({
locale: locale, // set locale
fallbackLocale: 'en', // set fallback locale
messages: messages
})
return i18n;
}