"bulma": "^1.0.4",
"pinia": "^3.0.1",
"vue": "^3.5.13",
+ "vue-i18n": "^11.1.3",
"vue-router": "^4.5.0"
},
"devDependencies": {
"url": "https://github.com/sponsors/nzakas"
}
},
+ "node_modules/@intlify/core-base": {
+ "version": "11.1.3",
+ "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-11.1.3.tgz",
+ "integrity": "sha512-cMuHunYO7LE80azTitcvEbs1KJmtd6g7I5pxlApV3Jo547zdO3h31/0uXpqHc+Y3RKt1wo2y68RGSx77Z1klyA==",
+ "dependencies": {
+ "@intlify/message-compiler": "11.1.3",
+ "@intlify/shared": "11.1.3"
+ },
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ }
+ },
+ "node_modules/@intlify/message-compiler": {
+ "version": "11.1.3",
+ "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-11.1.3.tgz",
+ "integrity": "sha512-7rbqqpo2f5+tIcwZTAG/Ooy9C8NDVwfDkvSeDPWUPQW+Dyzfw2o9H103N5lKBxO7wxX9dgCDjQ8Umz73uYw3hw==",
+ "dependencies": {
+ "@intlify/shared": "11.1.3",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ }
+ },
+ "node_modules/@intlify/shared": {
+ "version": "11.1.3",
+ "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-11.1.3.tgz",
+ "integrity": "sha512-pTFBgqa/99JRA2H1qfyqv97MKWJrYngXBA/I0elZcYxvJgcCw3mApAoPW3mJ7vx3j+Ti0FyKUFZ4hWxdjKaxvA==",
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ }
+ },
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/vue-i18n": {
+ "version": "11.1.3",
+ "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-11.1.3.tgz",
+ "integrity": "sha512-Pcylh9z9S5+CJAqgbRZ3EKxFIBIrtY5YUppU722GIT65+Nukm0TCqiQegZnNLCZkXGthxe0cpqj0AoM51H+6Gw==",
+ "dependencies": {
+ "@intlify/core-base": "11.1.3",
+ "@intlify/shared": "11.1.3",
+ "@vue/devtools-api": "^6.5.0"
+ },
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/vue-i18n/node_modules/@vue/devtools-api": {
+ "version": "6.6.4",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
+ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
+ },
"node_modules/vue-router": {
"version": "4.5.1",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.1.tgz",
import './assets/main.scss'
import { createApp } from 'vue'
+import { createI18n } from "vue-i18n"
import { createPinia } from 'pinia'
import App from './App.vue'
const app = createApp(App)
+// Setup translation
+const i18n = createI18n({
+ // Enable composition mode
+ legacy: false,
+
+ // Set the default locale
+ locale: "en",
+
+ // Load all translations
+ messages: {
+ en: {}
+ },
+
+ // Handle any missing keys
+ missing: (locale, key) => {
+ console.warn(`[i18n missing] ${key} in ${locale}`)
+
+ return key
+ }
+})
+
+app.use(i18n)
+
app.use(createPinia())
app.use(router)