34 lines
953 B
JavaScript
34 lines
953 B
JavaScript
import './assets/main.sass';
|
|
|
|
import { createApp } from 'vue';
|
|
import { createI18n } from 'vue-i18n';
|
|
import { useStorage } from '@vueuse/core';
|
|
import App from './App.vue';
|
|
import router from './router';
|
|
import messages from '@intlify/unplugin-vue-i18n/messages';
|
|
|
|
const setGlobalAttribute = (attrName, storageName, defaultValue) => {
|
|
const stored_value = useStorage(storageName, '');
|
|
if (!stored_value.value) {
|
|
stored_value.value = defaultValue;
|
|
}
|
|
document.documentElement.setAttribute(attrName, stored_value.value);
|
|
return {
|
|
'stored': stored_value,
|
|
'defaultValue': defaultValue,
|
|
};
|
|
};
|
|
const locale = setGlobalAttribute('lang', 'sake-locale', 'en');
|
|
const colorMode = setGlobalAttribute('data-bs-theme', 'sake-color-mode', 'light');
|
|
|
|
const i18n = createI18n({
|
|
legacy: false,
|
|
locale: locale.stored.value,
|
|
fallbackLocale: locale.defaultValue,
|
|
messages,
|
|
});
|
|
|
|
const app = createApp(App);
|
|
app.use(router);
|
|
app.use(i18n);
|
|
app.mount('#app');
|