diff --git a/package-lock.json b/package-lock.json
index 20ac029..64582a8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,7 +9,8 @@
"version": "0.1.0",
"dependencies": {
"ical.js": "^2.1.0",
- "vue": "^3.5.0"
+ "vue": "^3.5.0",
+ "vue-i18n": "^9.13.1"
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.2.0",
@@ -505,6 +506,47 @@
"node": ">=18"
}
},
+ "node_modules/@intlify/core-base": {
+ "version": "9.14.4",
+ "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.14.4.tgz",
+ "integrity": "sha512-vtZCt7NqWhKEtHa3SD/322DlgP5uR9MqWxnE0y8Q0tjDs9H5Lxhss+b5wv8rmuXRoHKLESNgw9d+EN9ybBbj9g==",
+ "dependencies": {
+ "@intlify/message-compiler": "9.14.4",
+ "@intlify/shared": "9.14.4"
+ },
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ }
+ },
+ "node_modules/@intlify/message-compiler": {
+ "version": "9.14.4",
+ "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.14.4.tgz",
+ "integrity": "sha512-vcyCLiVRN628U38c3PbahrhbbXrckrM9zpy0KZVlDk2Z0OnGwv8uQNNXP3twwGtfLsCf4gu3ci6FMIZnPaqZsw==",
+ "dependencies": {
+ "@intlify/shared": "9.14.4",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ }
+ },
+ "node_modules/@intlify/shared": {
+ "version": "9.14.4",
+ "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.14.4.tgz",
+ "integrity": "sha512-P9zv6i1WvMc9qDBWvIgKkymjY2ptIiQ065PjDv7z7fDqH3J/HBRBN5IoiR46r/ujRcU7hCuSIZWvCAFCyuOYZA==",
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ }
+ },
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.5.5",
"resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
@@ -1018,6 +1060,11 @@
"@vue/shared": "3.5.39"
}
},
+ "node_modules/@vue/devtools-api": {
+ "version": "6.6.4",
+ "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
+ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
+ },
"node_modules/@vue/reactivity": {
"version": "3.5.39",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.39.tgz",
@@ -2708,6 +2755,25 @@
}
}
},
+ "node_modules/vue-i18n": {
+ "version": "9.14.4",
+ "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.14.4.tgz",
+ "integrity": "sha512-B934C8yUyWLT0EMud3DySrwSUJI7ZNiWYsEEz2gknTthqKiG4dzWE/WSa8AzCuSQzwBEv4HtG1jZDhgzPfWSKQ==",
+ "dependencies": {
+ "@intlify/core-base": "9.14.4",
+ "@intlify/shared": "9.14.4",
+ "@vue/devtools-api": "^6.5.0"
+ },
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
"node_modules/why-is-node-running": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
diff --git a/package.json b/package.json
index a4fd11c..fb56508 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,8 @@
},
"dependencies": {
"ical.js": "^2.1.0",
- "vue": "^3.5.0"
+ "vue": "^3.5.0",
+ "vue-i18n": "^9.13.1"
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.2.0",
diff --git a/src/App.vue b/src/App.vue
index e9f7e04..c1bdd32 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,5 +1,8 @@