diff --git a/components/HeaderBlock.vue b/components/HeaderBlock.vue
index e744715..e81f723 100644
--- a/components/HeaderBlock.vue
+++ b/components/HeaderBlock.vue
@@ -87,7 +87,7 @@
src="/icons/Account.svg"
alt="Account"
/> -->
-
+
+ {{ $t("button_contact") }}
diff --git a/nuxt.config.ts b/nuxt.config.ts
index 09c81ac..1e4f438 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -18,19 +18,19 @@ export default defineNuxtConfig({
modules: ["@pinia/nuxt", "@nuxt/eslint", "@nuxt/ui", "@nuxtjs/i18n"],
- // @nuxtjs/i18n"
- // i18n: {
- // locales: [
- // { code: "pl", name: "Polski", icon: "emojione:flag-for-poland" },
- // { code: "en", name: "English", icon: "emojione:flag-for-united-kingdom" },
- // ],
- // lazy: true,
- // defaultLocale: "en",
- // strategy: "prefix",
- // bundle: {
- // optimizeTranslationDirective: false,
- // },
- // },
+ i18n: {
+ locales: [
+ { code: "pl", name: "Polski", icon: "emojione:flag-for-poland" },
+ { code: "en", name: "English", icon: "emojione:flag-for-united-kingdom" },
+ { code: "cs", name: "Čeština", icon: "emojione:flag-for-chechia" },
+ ],
+ lazy: true,
+ defaultLocale: "en",
+ strategy: "prefix",
+ bundle: {
+ optimizeTranslationDirective: false,
+ },
+ },
css: ["@/assets/fonts.css", "@/assets/main.css"],
vite: {
plugins: [tailwindcss()],
diff --git a/plugins/i18n.ts b/plugins/i18n.ts
new file mode 100644
index 0000000..e026b4d
--- /dev/null
+++ b/plugins/i18n.ts
@@ -0,0 +1,32 @@
+import type { VueI18n } from "vue-i18n";
+import { usePB } from "~/composables/usePB";
+
+export default defineNuxtPlugin(async (nuxtApp) => {
+ const loaded = [] as Array;
+
+ const i18n = nuxtApp.$i18n as VueI18n;
+ const pb = usePB();
+
+ i18n.onBeforeLanguageSwitch = async (oldLocale, newLocale) => {
+ if (loaded.includes(newLocale)) return;
+
+ try {
+ const translation = await pb.collection("translation").getList(1, 1, {
+ expand: "id_lang",
+ filter: `id_lang.iso='${newLocale}'`,
+ });
+
+ if (translation.totalItems === 1) {
+ i18n.setLocaleMessage(newLocale, translation.items[0].data);
+ } else {
+ i18n.setLocaleMessage(newLocale, {});
+ }
+
+ loaded.push(newLocale);
+ } catch (err) {
+ console.error("❌ Failed to load translation for locale:", newLocale);
+ throw err;
+ }
+ };
+
+});
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 21a71c5..76ecc7f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -17,6 +17,9 @@ importers:
'@nuxt/ui':
specifier: ^3.1.2
version: 3.1.2(@babel/parser@7.27.2)(axios@1.9.0)(db0@0.3.2)(embla-carousel@8.6.0)(encoding@0.1.13)(ioredis@5.6.1)(jwt-decode@4.0.0)(magicast@0.3.5)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.2)(yaml@2.8.0))(vue-router@4.5.1(vue@3.5.14(typescript@5.8.3)))(vue@3.5.14(typescript@5.8.3))(zod@3.25.20)
+ '@nuxtjs/i18n':
+ specifier: ^9.5.4
+ version: 9.5.4(@vue/compiler-dom@3.5.14)(eslint@9.27.0(jiti@2.4.2))(magicast@0.3.5)(rollup@4.41.0)(vue@3.5.14(typescript@5.8.3))
'@pinia/nuxt':
specifier: ^0.11.0
version: 0.11.0(magicast@0.3.5)(pinia@3.0.2(typescript@5.8.3)(vue@3.5.14(typescript@5.8.3)))
@@ -25,7 +28,7 @@ importers:
version: 4.1.7(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.2)(yaml@2.8.0))
nuxt:
specifier: ^3.17.4
- version: 3.17.4(@parcel/watcher@2.5.1)(@types/node@22.15.21)(db0@0.3.2)(eslint@9.27.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.2)(yaml@2.8.0))(yaml@2.8.0)
+ version: 3.17.4(@parcel/watcher@2.5.1)(@types/node@22.15.21)(db0@0.3.2)(encoding@0.1.13)(eslint@9.27.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.2)(yaml@2.8.0))(yaml@2.8.0)
pocketbase:
specifier: ^0.26.0
version: 0.26.0
@@ -511,6 +514,81 @@ packages:
'@internationalized/number@3.6.2':
resolution: {integrity: sha512-E5QTOlMg9wo5OrKdHD6edo1JJlIoOsylh0+mbf0evi1tHJwMZfJSaBpGtnJV9N7w3jeiioox9EG/EWRWPh82vg==}
+ '@intlify/bundle-utils@10.0.1':
+ resolution: {integrity: sha512-WkaXfSevtpgtUR4t8K2M6lbR7g03mtOxFeh+vXp5KExvPqS12ppaRj1QxzwRuRI5VUto54A22BjKoBMLyHILWQ==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ petite-vue-i18n: '*'
+ vue-i18n: '*'
+ peerDependenciesMeta:
+ petite-vue-i18n:
+ optional: true
+ vue-i18n:
+ optional: true
+
+ '@intlify/core-base@10.0.7':
+ resolution: {integrity: sha512-mE71aUH5baH0me8duB4FY5qevUJizypHsYw3eCvmOx07QvmKppgOONx3dYINxuA89Z2qkAGb/K6Nrpi7aAMwew==}
+ engines: {node: '>= 16'}
+
+ '@intlify/core@10.0.7':
+ resolution: {integrity: sha512-4n9tKt0/HcPrXfm0ceQlNC/wsgrrfXyHwRHSSiekMAy5vkOBc4PJXB5aUHGGkkH0dDdlkYyxUWqhZ3V64+gcKw==}
+ engines: {node: '>= 16'}
+
+ '@intlify/h3@0.6.1':
+ resolution: {integrity: sha512-hFMcqWXCoFNZkraa+JF7wzByGdE0vGi8rUs7CTFrE4hE3X2u9QcelH8VRO8mPgJDH+TgatzvrVp6iZsWVluk2A==}
+ engines: {node: '>= 18'}
+
+ '@intlify/message-compiler@10.0.7':
+ resolution: {integrity: sha512-nrC4cDL/UHZSUqd8sRbVz+DPukzZ8NnG5OK+EB/nlxsH35deyzyVkXP/QuR8mFZrISJ+4hCd6VtCQCcT+RO+5g==}
+ engines: {node: '>= 16'}
+
+ '@intlify/message-compiler@11.1.5':
+ resolution: {integrity: sha512-YLSBbjD7qUdShe3ZAat9Hnf9E8FRpN6qmNFD/x5Xg5JVXjsks0kJ90Zj6aAuyoppJQA/YJdWZ8/bB7k3dg2TjQ==}
+ engines: {node: '>= 16'}
+
+ '@intlify/shared@10.0.7':
+ resolution: {integrity: sha512-oeoq0L5+5P4ShXa6jBQcx+BT+USe3MjX0xJexZO1y7rfDJdwZ9+QP3jO4tcS1nxhBYYdjvFTqe4bmnLijV0GxQ==}
+ engines: {node: '>= 16'}
+
+ '@intlify/shared@11.1.5':
+ resolution: {integrity: sha512-+I4vRzHm38VjLr/CAciEPJhGYFzWWW4HMTm+6H3WqknXLh0ozNX9oC8ogMUwTSXYR/wGUb1/lTpNziiCH5MybQ==}
+ engines: {node: '>= 16'}
+
+ '@intlify/unplugin-vue-i18n@6.0.8':
+ resolution: {integrity: sha512-Vvm3KhjE6TIBVUQAk37rBiaYy2M5OcWH0ZcI1XKEsOTeN1o0bErk+zeuXmcrcMc/73YggfI8RoxOUz9EB/69JQ==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ petite-vue-i18n: '*'
+ vue: ^3.2.25
+ vue-i18n: '*'
+ peerDependenciesMeta:
+ petite-vue-i18n:
+ optional: true
+ vue-i18n:
+ optional: true
+
+ '@intlify/utils@0.13.0':
+ resolution: {integrity: sha512-8i3uRdAxCGzuHwfmHcVjeLQBtysQB2aXl/ojoagDut5/gY5lvWCQ2+cnl2TiqE/fXj/D8EhWG/SLKA7qz4a3QA==}
+ engines: {node: '>= 18'}
+
+ '@intlify/vue-i18n-extensions@8.0.0':
+ resolution: {integrity: sha512-w0+70CvTmuqbskWfzeYhn0IXxllr6mU+IeM2MU0M+j9OW64jkrvqY+pYFWrUnIIC9bEdij3NICruicwd5EgUuQ==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ '@intlify/shared': ^9.0.0 || ^10.0.0 || ^11.0.0
+ '@vue/compiler-dom': ^3.0.0
+ vue: ^3.0.0
+ vue-i18n: ^9.0.0 || ^10.0.0 || ^11.0.0
+ peerDependenciesMeta:
+ '@intlify/shared':
+ optional: true
+ '@vue/compiler-dom':
+ optional: true
+ vue:
+ optional: true
+ vue-i18n:
+ optional: true
+
'@ioredis/commands@1.2.0':
resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
@@ -565,6 +643,11 @@ packages:
engines: {node: '>=18'}
hasBin: true
+ '@miyaneee/rollup-plugin-json5@1.2.0':
+ resolution: {integrity: sha512-JjTIaXZp9WzhUHpElrqPnl1AzBi/rvRs065F71+aTmlqvTMVkdbjZ8vfFl4nRlgJy+TPBw69ZK4pwFdmOAt4aA==}
+ peerDependencies:
+ rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0
+
'@napi-rs/wasm-runtime@0.2.10':
resolution: {integrity: sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ==}
@@ -738,15 +821,31 @@ packages:
'@nuxtjs/color-mode@3.5.2':
resolution: {integrity: sha512-cC6RfgZh3guHBMLLjrBB2Uti5eUoGM9KyauOaYS9ETmxNWBMTvpgjvSiSJp1OFljIXPIqVTJ3xtJpSNZiO3ZaA==}
+ '@nuxtjs/i18n@9.5.4':
+ resolution: {integrity: sha512-HSCC6bLvkI74AOJ/Hsa8+52uy92Bzpu/lVOKYJZIR/HV4TtV48fgKLPRlL8RmCXx/AmKBtrPsLfhAAIj9RBAKQ==}
+ engines: {node: '>=18.12.0'}
+
'@nuxtjs/tailwindcss@6.14.0':
resolution: {integrity: sha512-30RyDK++LrUVRgc2A85MktGWIZoRQgeQKjE4CjjD64OXNozyl+4ScHnnYgqVToMM6Ch2ZG2W4wV2J0EN6F0zkQ==}
+ '@oxc-parser/binding-darwin-arm64@0.61.2':
+ resolution: {integrity: sha512-xpDuwawMDCHg3plbSjpMbrhNTzO1AlvvHqsUOTE3WDmv5K7fFD72f3Pl+SxPJ4D/IhMdskec1B5ZfZHM1iAFmQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
'@oxc-parser/binding-darwin-arm64@0.71.0':
resolution: {integrity: sha512-7R7TuHWL2hZ8BbRdxXlVJTE0os7TM6LL2EX2OkIz41B3421JeIU+2YH+IV55spIUy5E5ynesLk0IdpSSPVZ25Q==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [darwin]
+ '@oxc-parser/binding-darwin-x64@0.61.2':
+ resolution: {integrity: sha512-1zjghOALDDhg5mPJgQfoud/bLOxD3M9n8l2LxXK4NngxGh3xXq1K7vAs2dzDnwZI6FaStrrBMDJSocT2hggiLg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
'@oxc-parser/binding-darwin-x64@0.71.0':
resolution: {integrity: sha512-Q7QshRy7cDvpvWAH+qy2U8O9PKo5yEKFqPruD2OSOM8igy/GLIC21dAd6iCcqXRZxaqzN9c4DaXFtEZfq4NWsw==}
engines: {node: '>=14.0.0'}
@@ -759,6 +858,12 @@ packages:
cpu: [x64]
os: [freebsd]
+ '@oxc-parser/binding-linux-arm-gnueabihf@0.61.2':
+ resolution: {integrity: sha512-OppSdOE7BAHfx/hNbsS4tf+CPCEWEXeEB/4tJKcv6qysZKsTD6XXWUzn2F7KR7TFNSzA0hPjnZyezjFgo+xvcQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm]
+ os: [linux]
+
'@oxc-parser/binding-linux-arm-gnueabihf@0.71.0':
resolution: {integrity: sha512-QZQcWMduFRWddqvjgLvsWoeellFjvWqvdI0O1m5hoMEykv2/Ag8d7IZbBwRwFqKBuK4UzpBNt4jZaYzRsv1irg==}
engines: {node: '>=14.0.0'}
@@ -771,12 +876,24 @@ packages:
cpu: [arm]
os: [linux]
+ '@oxc-parser/binding-linux-arm64-gnu@0.61.2':
+ resolution: {integrity: sha512-CqhKWDvVr4rZpi8Evh/K7FKwn9UnPhF0F0ivF+CsFCMOaS5egalmFRRybQk1QuwGq1XjTA3D8puqvlF0p82+ew==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
'@oxc-parser/binding-linux-arm64-gnu@0.71.0':
resolution: {integrity: sha512-mAA6JGS+MB+gbN5y/KuQ095EHYGF7a/FaznM7klk5CaCap/UdiRWCVinVV6xXmejOPZMnrkr6R5Kqi6dHRsm2g==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [linux]
+ '@oxc-parser/binding-linux-arm64-musl@0.61.2':
+ resolution: {integrity: sha512-wLtzWy6EyMf7F83pcJhanolaQ7xnwnVAj2wjdJ52qgX4oQjqZZUo6Rk/LE2iY8Aq/R2Bx2yREFeIC4R1kjtB0A==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
'@oxc-parser/binding-linux-arm64-musl@0.71.0':
resolution: {integrity: sha512-PaPmIEM0yldXSrO1Icrx6/DwnMXpEOv0bDVa0LFtwy2I+aiTiX7OVRB3pJCg8FEV9P+L48s9XW0Oaz+Dz3o3sQ==}
engines: {node: '>=14.0.0'}
@@ -795,35 +912,74 @@ packages:
cpu: [s390x]
os: [linux]
+ '@oxc-parser/binding-linux-x64-gnu@0.61.2':
+ resolution: {integrity: sha512-aJ+g/pDcOeqfB2bVZkUjHlCBL8H7lsgkuYVGKKLYxN/oLjrt2Jf/BVu6fL3NxmSSaFmtHKowDgoRAjiKwxQWEQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [linux]
+
'@oxc-parser/binding-linux-x64-gnu@0.71.0':
resolution: {integrity: sha512-steSQTwv3W+/hpES4/9E3vNohou1FXJLNWLDbYHDaBI9gZdYJp6zwALC8EShCz0NoQvCu4THD3IBsTBHvFBNyw==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [linux]
+ '@oxc-parser/binding-linux-x64-musl@0.61.2':
+ resolution: {integrity: sha512-PosnNyxTqCiMTgva5w695p3ooCcFU8tU+c+JnGgkBgD8pKTbV6fwn8dc4GlcgyyLaM1rD+zi/s+4ooTVML8iIA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [linux]
+
'@oxc-parser/binding-linux-x64-musl@0.71.0':
resolution: {integrity: sha512-mV8j/haQBZRU2QnwZe0UIpnhpPBL9dFk1tgNVSH9tV7cV4xUZPn7pFDqMriAmpD7GLfmxbZMInDkujokd63M7Q==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [linux]
+ '@oxc-parser/binding-wasm32-wasi@0.61.2':
+ resolution: {integrity: sha512-zOxdLDItMXeB1GdVCtOOW+aC+Ra6C4E1ivT4rbhaaVe70RsCRa2fGmNC0divvgfQsL2eGBkCuB4d4N9DjfhK4Q==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
'@oxc-parser/binding-wasm32-wasi@0.71.0':
resolution: {integrity: sha512-P8ScINpuihkkBX8BrN/4x4ka2+izncHh7/hHxxuPZDZTVMyNNnL1uSoI80tN9yN7NUtUKoi9aQUaF4h22RQcIA==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
+ '@oxc-parser/binding-win32-arm64-msvc@0.61.2':
+ resolution: {integrity: sha512-E7VMrb4XF748hyzIax2KV7TEfi27SfXoi/BH5guiBicSef/31qwHRdKCh708lmIYmbeEJ9D0wO/25K6dvTl8QQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
'@oxc-parser/binding-win32-arm64-msvc@0.71.0':
resolution: {integrity: sha512-4jrJSdBXHmLYaghi1jvbuJmWu117wxqCpzHHgpEV9xFiRSngtClqZkNqyvcD4907e/VriEwluZ3PO3Mlp0y9cw==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [win32]
+ '@oxc-parser/binding-win32-x64-msvc@0.61.2':
+ resolution: {integrity: sha512-GtRVVz4DGF94MzlJ7xCIpITu6WKYdTqWc2cqMaJEzYDC8EsHjNkfbGhmawhyodFFuTfWqPAjJecIvvAnfMLpxw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [win32]
+
'@oxc-parser/binding-win32-x64-msvc@0.71.0':
resolution: {integrity: sha512-zF7xF19DOoANym/xwVClYH1tiW3S70W8ZDrMHdrEB7gZiTYLCIKIRMrpLVKaRia6LwEo7X0eduwdBa5QFawxOw==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [win32]
+ '@oxc-parser/wasm@0.60.0':
+ resolution: {integrity: sha512-Dkf9/D87WGBCW3L0+1DtpAfL4SrNsgeRvxwjpKCtbH7Kf6K+pxrT0IridaJfmWKu1Ml+fDvj+7HEyBcfUC/TXQ==}
+ deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
+
+ '@oxc-project/types@0.60.0':
+ resolution: {integrity: sha512-prhfNnb3ATFHOCv7mzKFfwLij5RzoUz6Y1n525ZhCEqfq5wreCXL+DyVoq3ShukPo7q45ZjYIdjFUgjj+WKzng==}
+
+ '@oxc-project/types@0.61.2':
+ resolution: {integrity: sha512-rfuwJwvwn9MRthHNXlSo9Eka/u7gC0MhnWAoX3BhE1+rwPOl22nq0K0Y997Hof0tHCOuD7H3/Z8HTfCVhB4c5Q==}
+
'@oxc-project/types@0.71.0':
resolution: {integrity: sha512-5CwQ4MI+P4MQbjLWXgNurA+igGwu/opNetIE13LBs9+V93R64MLvDKOOLZIXSzEfovU3Zef3q3GjPnMTgJTn2w==}
@@ -1004,6 +1160,15 @@ packages:
rollup:
optional: true
+ '@rollup/plugin-yaml@4.1.2':
+ resolution: {integrity: sha512-RpupciIeZMUqhgFE97ba0s98mOFS7CWzN3EJNhJkqSv9XLlWYtwVdtE6cDw6ASOF/sZVFS7kRJXftaqM2Vakdw==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
'@rollup/pluginutils@5.1.4':
resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==}
engines: {node: '>=14.0.0'}
@@ -6596,6 +6761,87 @@ snapshots:
dependencies:
'@swc/helpers': 0.5.17
+ '@intlify/bundle-utils@10.0.1(vue-i18n@10.0.7(vue@3.5.14(typescript@5.8.3)))':
+ dependencies:
+ '@intlify/message-compiler': 11.1.5
+ '@intlify/shared': 11.1.5
+ acorn: 8.14.1
+ escodegen: 2.1.0
+ estree-walker: 2.0.2
+ jsonc-eslint-parser: 2.4.0
+ mlly: 1.7.4
+ source-map-js: 1.2.1
+ yaml-eslint-parser: 1.3.0
+ optionalDependencies:
+ vue-i18n: 10.0.7(vue@3.5.14(typescript@5.8.3))
+
+ '@intlify/core-base@10.0.7':
+ dependencies:
+ '@intlify/message-compiler': 10.0.7
+ '@intlify/shared': 10.0.7
+
+ '@intlify/core@10.0.7':
+ dependencies:
+ '@intlify/core-base': 10.0.7
+ '@intlify/shared': 10.0.7
+
+ '@intlify/h3@0.6.1':
+ dependencies:
+ '@intlify/core': 10.0.7
+ '@intlify/utils': 0.13.0
+
+ '@intlify/message-compiler@10.0.7':
+ dependencies:
+ '@intlify/shared': 10.0.7
+ source-map-js: 1.2.1
+
+ '@intlify/message-compiler@11.1.5':
+ dependencies:
+ '@intlify/shared': 11.1.5
+ source-map-js: 1.2.1
+
+ '@intlify/shared@10.0.7': {}
+
+ '@intlify/shared@11.1.5': {}
+
+ '@intlify/unplugin-vue-i18n@6.0.8(@vue/compiler-dom@3.5.14)(eslint@9.27.0(jiti@2.4.2))(rollup@4.41.0)(typescript@5.8.3)(vue-i18n@10.0.7(vue@3.5.14(typescript@5.8.3)))(vue@3.5.14(typescript@5.8.3))':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2))
+ '@intlify/bundle-utils': 10.0.1(vue-i18n@10.0.7(vue@3.5.14(typescript@5.8.3)))
+ '@intlify/shared': 11.1.5
+ '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.5)(@vue/compiler-dom@3.5.14)(vue-i18n@10.0.7(vue@3.5.14(typescript@5.8.3)))(vue@3.5.14(typescript@5.8.3))
+ '@rollup/pluginutils': 5.1.4(rollup@4.41.0)
+ '@typescript-eslint/scope-manager': 8.32.1
+ '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3)
+ debug: 4.4.1
+ fast-glob: 3.3.3
+ js-yaml: 4.1.0
+ json5: 2.2.3
+ pathe: 1.1.2
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+ unplugin: 1.16.1
+ vue: 3.5.14(typescript@5.8.3)
+ optionalDependencies:
+ vue-i18n: 10.0.7(vue@3.5.14(typescript@5.8.3))
+ transitivePeerDependencies:
+ - '@vue/compiler-dom'
+ - eslint
+ - rollup
+ - supports-color
+ - typescript
+
+ '@intlify/utils@0.13.0': {}
+
+ '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.5)(@vue/compiler-dom@3.5.14)(vue-i18n@10.0.7(vue@3.5.14(typescript@5.8.3)))(vue@3.5.14(typescript@5.8.3))':
+ dependencies:
+ '@babel/parser': 7.27.2
+ optionalDependencies:
+ '@intlify/shared': 11.1.5
+ '@vue/compiler-dom': 3.5.14
+ vue: 3.5.14(typescript@5.8.3)
+ vue-i18n: 10.0.7(vue@3.5.14(typescript@5.8.3))
+
'@ioredis/commands@1.2.0': {}
'@isaacs/cliui@8.0.2':
@@ -6681,6 +6927,12 @@ snapshots:
- encoding
- supports-color
+ '@miyaneee/rollup-plugin-json5@1.2.0(rollup@4.41.0)':
+ dependencies:
+ '@rollup/pluginutils': 5.1.4(rollup@4.41.0)
+ json5: 2.2.3
+ rollup: 4.41.0
+
'@napi-rs/wasm-runtime@0.2.10':
dependencies:
'@emnapi/core': 1.4.3
@@ -7239,6 +7491,42 @@ snapshots:
transitivePeerDependencies:
- magicast
+ '@nuxtjs/i18n@9.5.4(@vue/compiler-dom@3.5.14)(eslint@9.27.0(jiti@2.4.2))(magicast@0.3.5)(rollup@4.41.0)(vue@3.5.14(typescript@5.8.3))':
+ dependencies:
+ '@intlify/h3': 0.6.1
+ '@intlify/shared': 10.0.7
+ '@intlify/unplugin-vue-i18n': 6.0.8(@vue/compiler-dom@3.5.14)(eslint@9.27.0(jiti@2.4.2))(rollup@4.41.0)(typescript@5.8.3)(vue-i18n@10.0.7(vue@3.5.14(typescript@5.8.3)))(vue@3.5.14(typescript@5.8.3))
+ '@intlify/utils': 0.13.0
+ '@miyaneee/rollup-plugin-json5': 1.2.0(rollup@4.41.0)
+ '@nuxt/kit': 3.17.4(magicast@0.3.5)
+ '@oxc-parser/wasm': 0.60.0
+ '@rollup/plugin-yaml': 4.1.2(rollup@4.41.0)
+ '@vue/compiler-sfc': 3.5.14
+ debug: 4.4.1
+ defu: 6.1.4
+ esbuild: 0.25.4
+ estree-walker: 3.0.3
+ h3: 1.15.3
+ knitwork: 1.2.0
+ magic-string: 0.30.17
+ mlly: 1.7.4
+ oxc-parser: 0.61.2
+ pathe: 2.0.3
+ typescript: 5.8.3
+ ufo: 1.6.1
+ unplugin: 2.3.4
+ unplugin-vue-router: 0.12.0(vue-router@4.5.1(vue@3.5.14(typescript@5.8.3)))(vue@3.5.14(typescript@5.8.3))
+ vue-i18n: 10.0.7(vue@3.5.14(typescript@5.8.3))
+ vue-router: 4.5.1(vue@3.5.14(typescript@5.8.3))
+ transitivePeerDependencies:
+ - '@vue/compiler-dom'
+ - eslint
+ - magicast
+ - petite-vue-i18n
+ - rollup
+ - supports-color
+ - vue
+
'@nuxtjs/tailwindcss@6.14.0(magicast@0.3.5)':
dependencies:
'@nuxt/kit': 3.17.4(magicast@0.3.5)
@@ -7262,24 +7550,39 @@ snapshots:
- supports-color
- ts-node
+ '@oxc-parser/binding-darwin-arm64@0.61.2':
+ optional: true
+
'@oxc-parser/binding-darwin-arm64@0.71.0':
optional: true
+ '@oxc-parser/binding-darwin-x64@0.61.2':
+ optional: true
+
'@oxc-parser/binding-darwin-x64@0.71.0':
optional: true
'@oxc-parser/binding-freebsd-x64@0.71.0':
optional: true
+ '@oxc-parser/binding-linux-arm-gnueabihf@0.61.2':
+ optional: true
+
'@oxc-parser/binding-linux-arm-gnueabihf@0.71.0':
optional: true
'@oxc-parser/binding-linux-arm-musleabihf@0.71.0':
optional: true
+ '@oxc-parser/binding-linux-arm64-gnu@0.61.2':
+ optional: true
+
'@oxc-parser/binding-linux-arm64-gnu@0.71.0':
optional: true
+ '@oxc-parser/binding-linux-arm64-musl@0.61.2':
+ optional: true
+
'@oxc-parser/binding-linux-arm64-musl@0.71.0':
optional: true
@@ -7289,23 +7592,48 @@ snapshots:
'@oxc-parser/binding-linux-s390x-gnu@0.71.0':
optional: true
+ '@oxc-parser/binding-linux-x64-gnu@0.61.2':
+ optional: true
+
'@oxc-parser/binding-linux-x64-gnu@0.71.0':
optional: true
+ '@oxc-parser/binding-linux-x64-musl@0.61.2':
+ optional: true
+
'@oxc-parser/binding-linux-x64-musl@0.71.0':
optional: true
+ '@oxc-parser/binding-wasm32-wasi@0.61.2':
+ dependencies:
+ '@napi-rs/wasm-runtime': 0.2.10
+ optional: true
+
'@oxc-parser/binding-wasm32-wasi@0.71.0':
dependencies:
'@napi-rs/wasm-runtime': 0.2.10
optional: true
+ '@oxc-parser/binding-win32-arm64-msvc@0.61.2':
+ optional: true
+
'@oxc-parser/binding-win32-arm64-msvc@0.71.0':
optional: true
+ '@oxc-parser/binding-win32-x64-msvc@0.61.2':
+ optional: true
+
'@oxc-parser/binding-win32-x64-msvc@0.71.0':
optional: true
+ '@oxc-parser/wasm@0.60.0':
+ dependencies:
+ '@oxc-project/types': 0.60.0
+
+ '@oxc-project/types@0.60.0': {}
+
+ '@oxc-project/types@0.61.2': {}
+
'@oxc-project/types@0.71.0': {}
'@parcel/watcher-android-arm64@2.5.1':
@@ -7454,6 +7782,14 @@ snapshots:
optionalDependencies:
rollup: 4.41.0
+ '@rollup/plugin-yaml@4.1.2(rollup@4.41.0)':
+ dependencies:
+ '@rollup/pluginutils': 5.1.4(rollup@4.41.0)
+ js-yaml: 4.1.0
+ tosource: 2.0.0-alpha.3
+ optionalDependencies:
+ rollup: 4.41.0
+
'@rollup/pluginutils@5.1.4(rollup@4.41.0)':
dependencies:
'@types/estree': 1.0.7
@@ -11225,6 +11561,12 @@ snapshots:
type-check: 0.4.0
word-wrap: 1.2.5
+ own-keys@1.0.1:
+ dependencies:
+ get-intrinsic: 1.3.0
+ object-keys: 1.1.1
+ safe-push-apply: 1.0.0
+
oxc-parser@0.61.2:
dependencies:
'@oxc-project/types': 0.61.2