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