\n\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\n\n```",[3019,3022],{"name":3020,"color":3021},"pending triage","c2e0c6",{"name":3023,"color":3024},"need reproduction","CD234A",3271,"nuxt-modules","i18n","open","[WebStorm] Type error '__VLS_ctx.$t' is of type 'unknown'.","2025-07-04T14:54:08Z","https://github.com/nuxt-modules/i18n/issues/3271",0.65836185,{"description":3034,"labels":3035,"number":3037,"owner":3026,"repository":3027,"state":3028,"title":3038,"updated_at":3039,"url":3040,"score":3041},"### Environment\n\n------------------------------\n- Operating System: Windows_NT\n- Node Version: v22.12.0\n- Nuxt Version: 4.0.1\n- CLI Version: 3.26.4\n- Nitro Version: 2.12.4\n- Package Manager: npm@11.1.0\n- Builder: -\n- User Config: modules, imports, devtools, app, css, router, site, colorMode, runtimeConfig, generate, dev, compatibilityDate, nitro, debug, eslint, i18n, ogImage, robots, security, vuefire\n- Runtime Modules: @nuxt/ui@3.2.0, @nuxt/eslint@1.7.0, @nuxtjs/seo@3.1.0, @nuxtjs/i18n@10.0.2, nuxt-security@2.3.0, nuxt-vuefire@1.1.0\n- Build Modules: -\n------------------------------\n\n### Reproduction\n\nThe problem starts to appear after updating to nuxt-i18n v10 module\n\nWhat we can do to replicate:\nhttps://stackblitz.com/edit/bobbiegoede-nuxt-i18n-starter-dwb5kaqj?file=nuxt.config.ts\n\n### Describe the bug\n\nAfter updating i19n from version 9.5.6 to 10.0.2 I receive the following error on startup\n\n```\n[16:02:12] ERROR [request error] [unhandled] [GET] http://localhost:3000/__nuxt_error?error=true&url=%2Fdashboard&statusCode=500&statusMessage=Internal+Server+Error&message=(0%2C+__vite_ssr_import_0__.getApps)+is+not+a+function&stack=(0%2C+__vite_ssr_import_0__.getApps)+is+not+a+function%0Aat+ensureAdminApp+(/project/node_modules/vuefire/dist/server/index.mjs:42:17)%0Aat+/project/node_modules/nuxt-vuefire/dist/runtime/admin/plugin.server.js:13:62)%0Aat+/project/node_modules/nuxt/dist/app/nuxt.js:142:40)%0Aat+fn+(/project/node_modules/nuxt/dist/app/nuxt.js:220:36)%0Aat+Object.callAsync+(/project/node_modules/unctx/dist/index.mjs:72:47)%0Aat+/project/node_modules/nuxt/dist/app/nuxt.js:225:52)%0Aat+Object.runWithContext+(/project/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4020:18)%0Aat+callWithNuxt+(/project/node_modules/nuxt/dist/app/nuxt.js:225:24)%0Aat+/project/node_modules/nuxt/dist/app/nuxt.js:61:41)%0Aat+EffectScope.run+(/project/node_modules/@vue/reactivity/dist/reactivity.cjs.js:97:16)\n\nℹ Error: _ctx.$t is not a function\n\n ⁃ at _sfc_ssrRender (/project/components/Navigation.vue:175:15)\n\n 171 ┃ \u003CUButton\n 172 ┃ variant=\"ghost\"\n 173 ┃ :aria-label=\"item.label\"\n 174 ┃ >\n ❯ 175 ┃ \u003CUIcon :name=\"item.icon\" />\n 176 ┃ {{ item.label }}\n 177 ┃ \u003C/UButton>\n\n ⁃ at renderComponentSubTree (/project/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:737:9) \n ⁃ at renderComponentVNode (/project/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:686:12) \n ⁃ at ssrRenderComponent (/project/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:100:10) \n ⁃ at _sfc_ssrRender (/project/layouts/default.vue:28:41) \n ⁃ at renderComponentSubTree (/project/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:737:9) \n ⁃ at renderVNode (/project/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:801:14) \n ⁃ at callWithNuxt (/project/node_modules/nuxt/dist/app/nuxt.js:225:24)\n\n[CAUSE]\nTypeError {\n message: '_ctx.$t is not a function',\n stack: '_ctx.$t is not a function\\n' +\n 'at _sfc_ssrRender (/project/components/Navigation.vue:175:15)\\n' +\n 'at renderComponentSubTree (/project/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:737:9)\\n' +\n 'at renderComponentVNode (/project/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:686:12)\\n' +\n 'at ssrRenderComponent (/project/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:100:10)\\n' +\n 'at _sfc_ssrRender (/project/layouts/default.vue:28:41)\\n' +\n '...'\n}\n```\n\n\nHence I can't start the whole application.\n\nI tried to reproduce it in the stackblitz, but all works fine there. Maybe it has something to do with my envirnoment as I deleted all .nuxt files and also removed all node modules/reinstalled them\n\n\n### Additional context\n\n\nAlso I have a previous error which then causes the application to crash:\n```\n WARN [Vue warn]: Property \"$t\" was accessed during render but is not defined on instance. 14:28:44 \n at \u003CHeaderBar>\n at \u003CDefault ref=Ref\u003C undefined > >\n at \u003CAsyncComponentWrapper ref=Ref\u003C undefined > >\n at \u003CLayoutLoader key=\"default\" layoutProps={\n ref: RefImpl {\n dep: Dep {\n computed: undefined,\n version: 0,\n activeLink: undefined,\n subs: undefined,\n map: undefined,\n key: undefined,\n sc: 0,\n __v_skip: true,\n subsHead: undefined\n },\n __v_isRef: true,\n __v_isShallow: true,\n _rawValue: undefined,\n _value: undefined\n }\n } name=\"default\" >\n at \u003CNuxtLayoutProvider layoutProps={\n ref: RefImpl {\n dep: Dep {\n computed: undefined,\n version: 0,\n activeLink: undefined,\n subs: undefined,\n map: undefined,\n key: undefined,\n sc: 0,\n __v_skip: true,\n subsHead: undefined\n },\n __v_isRef: true,\n __v_isShallow: true,\n _rawValue: undefined,\n _value: undefined\n }\n } key=\"default\" name=\"default\" ... >\n at \u003CNuxtLayout>\n at \u003CError error=(0 , __vite_ssr_import_0__.getApps) is not a function\n\n at ensureAdminApp (/app/node_modules/vuefire/dist/server/index.mjs:36:41)\n at /app/node_modules/nuxt-vuefire/dist/runtime/admin/plugin.server.js:12:68\n at /app/node_modules/nuxt/dist/app/nuxt.js:156:60\n at fn (/app/node_modules/nuxt/dist/app/nuxt.js:233:44)\n at Object.callAsync (/app/node_modules/unctx/dist/index.mjs:68:55)\n at /app/node_modules/nuxt/dist/app/nuxt.js:236:56\n at Object.runWithContext (/app/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:4002:18)\n at callWithNuxt (/app/node_modules/nuxt/dist/app/nuxt.js:236:24)\n at /app/node_modules/nuxt/dist/app/nuxt.js:55:41\n at EffectScope.run (/app/node_modules/@vue/reactivity/dist/reactivity.cjs.js:85:16) >\n at \u003CNuxtRoot>\n\n[nuxt-app] vue:error: 9.872ms 14:28:44 \n[nuxt-app] app:error: 0.022ms 14:28:44 \n[nitro-runtime] error: 0.571ms\n```\n\nWhen I remove nuxt-vuefire. It works again, no error on startup.\n\nWhen I downgrade to 9.5.6 for the i18n module, it works too even with nuxt-vuefire and even with it throwing an error directly\n\n### Logs\n\n```shell\n\n```",[3036],{"name":3020,"color":3021},3755,"_ctx.$t is not a function","2025-07-23T13:58:47Z","https://github.com/nuxt-modules/i18n/issues/3755",0.7070211,{"description":3043,"labels":3044,"number":3046,"owner":3026,"repository":3027,"state":3028,"title":3047,"updated_at":3048,"url":3049,"score":3050},"### Environment\n\n------------------------------\n- Operating System: Windows_NT\n- Node Version: v19.9.0\n- Nuxt Version: 3.17.3\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.12\n- Package Manager: npm@9.6.3\n- Builder: -\n- User Config: modules, i18n, tailwindcss, css, plugins, devtools, compatibilityDate, runtimeConfig, vite, nitro\n- Runtime Modules: @geeks.solutions/nuxt-sections@3.0.1, @nuxt/image@1.10.0, @nuxtjs/i18n@9.5.4, @nuxtjs/tailwindcss@6.14.0, nuxt-lazytube@0.2.2, nuxt3-leaflet@1.0.13, @pinia/nuxt@0.11.0\n- Build Modules: -\n------------------------------\n\n\n### Reproduction\n\n* nuxt.config.ts\n\n```ts\nexport default defineNuxtConfig({\n ...(process.env.NODE_ENV === 'development' && {\n devServer: {\n https: {},\n host: '0.0.0.0',\n port: 443,\n }\n }),\n modules: [\n \"@geeks.solutions/nuxt-sections\",\n \"@nuxt/image\",\n \"@nuxtjs/i18n\",\n \"@nuxtjs/tailwindcss\",\n \"nuxt-lazytube\",\n \"nuxt3-leaflet\",\n \"@pinia/nuxt\"\n ],\n i18n: {\n detectBrowserLanguage: false,\n defaultLocale: \"en\",\n locales: [\n {\n name: \"French\",\n code: \"fr\",\n iso: \"fr\",\n file: \"fr.js\"\n },\n {\n name: \"English\",\n code: \"en\",\n iso: \"en\",\n file: \"en.js\"\n }\n ],\n langDir: \"lang/\",\n experimental: {\n localeDetector: 'localeDetector.ts'\n }\n },\n tailwindcss: {\n\n },\n css: [\n '~/assets/css/default.css'\n ],\n plugins: [\n '~/plugins/vue-dragscroll.js'\n ],\n devtools: { enabled: true },\n compatibilityDate: '2025-05-13',\n vite: {\n optimizeDeps: {\n include: ['quill', '@devdcodes9/quill-emojijs', 'quill-table-ui'],\n }\n },\n nitro: {\n compressPublicAssets: {\n gzip: true,\n brotli: true\n }\n }\n})\n```\n\n* localeDetector.ts inside i18n directory\n\n```ts\nconsole.log(\"Detector file loaded\")\n\n// Detect based on query, cookie, header\nexport default defineI18nLocaleDetector((event, config) => {\n\n console.log(\"Event\", event)\n\n // try to get locale from query\n const query = tryQueryLocale(event, { lang: '' }) // disable locale default value with `lang` option\n if (query) {\n return query.toString()\n }\n\n // try to get locale from cookie\n const cookie = tryCookieLocale(event, { lang: '', name: 'i18n_redirected' }) // disable locale default value with `lang` option\n if (cookie) {\n return cookie.toString()\n }\n\n // try to get locale from header (`accept-header`)\n const header = tryHeaderLocale(event, { lang: '' }) // disable locale default value with `lang` option\n if (header) {\n return header.toString()\n }\n\n // If the locale cannot be resolved up to this point, it is resolved with the value `defaultLocale` of the locale config passed to the function\n return config.defaultLocale\n})\n```\n\n* nuxi prepare\n* nuxi dev\n\n### Describe the bug\n\nI am trying to use the experimental localeDetector feature.\nThe localeDetector file is loaded and confirmed by having `Detector file loaded` logged on the server console.\n\nThe problem I am facing is that defineI18nLocaleDetector is never called and no Event is logged.\nAm I missing something ?\n\n### Additional context\n\nIn the documentation I saw that the local detector function is called per request on the server, so why the code inside the defineI18nLocaleDetector is never reached\n\n### Logs\n\n```shell\nNo errors logged at all\n```",[3045],{"name":3020,"color":3021},3651,"Code inside defineI18nLocaleDetector is not reached","2025-05-29T06:34:13Z","https://github.com/nuxt-modules/i18n/issues/3651",0.7172437,{"description":3052,"labels":3053,"number":3058,"owner":3026,"repository":3027,"state":3059,"title":3060,"updated_at":3061,"url":3062,"score":3063},"### Environment\n\n- Operating System: `Darwin`\n- Node Version: `v22.14.0`\n- Nuxt Version: `4.0.1`\n- CLI Version: `3.26.4`\n- Nitro Version: `2.12.4`\n- Package Manager: `pnpm@10.12.4`\n- Builder: `-`\n- User Config: `compatibilityDate`, `devtools`, `modules`, `i18n`\n- Runtime Modules: `@nuxt/scripts@0.11.10`, `@nuxt/test-utils@3.19.2`, `@nuxtjs/i18n@10.0.2`\n- Build Modules: `-`\n\n\n### Reproduction\n\n修改多语言热更新报错,\n\n\u003Cimg width=\"3318\" height=\"334\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/ba25f21a-3216-4066-9e49-269efad06425\" />\n\n\u003Cimg width=\"1436\" height=\"474\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/378d9d5d-c5ae-48e5-a3b5-da94d168e206\" />\n\n### Describe the bug\n\n修改多语言热更新报错,\n\n\u003Cimg width=\"3318\" height=\"334\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/ba25f21a-3216-4066-9e49-269efad06425\" />\n\n\u003Cimg width=\"1436\" height=\"474\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/378d9d5d-c5ae-48e5-a3b5-da94d168e206\" />\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\n\n```",[3054,3057],{"name":3055,"color":3056},"upstream","fbca04",{"name":3023,"color":3024},3753,"closed","在 nuxt4.0.2 里使用 \"@nuxtjs/i18n\": \"^10.0.2\" 热更新报错","2025-07-24T09:13:52Z","https://github.com/nuxt-modules/i18n/issues/3753",0.67723894,{"description":3065,"labels":3066,"number":3068,"owner":3026,"repository":3027,"state":3059,"title":3069,"updated_at":3070,"url":3071,"score":3072},"### Environment\n\nReproduction env:\n- Operating System: Linux\n- Node Version: v20.19.1\n- Nuxt Version: 3.17.5\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.12\n- Package Manager: pnpm@8.15.6\n- Builder: -\n- User Config: modules, future, compatibilityDate, devtools, i18n\n- Runtime Modules: @nuxtjs/i18n@10.0.0-rc.1\n- Build Modules: -\n\nLocal dev env:\n- Operating System: Linux\n- Node Version: v22.16.0\n- Nuxt Version: 3.17.5\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.13\n- Package Manager: pnpm@10.12.4\n- Builder: -\n- User Config: modules, future, compatibilityDate, devtools, experimental, plugins, css, app, nitro, router, routeRules, runtimeConfig, fonts, i18n, icon, image, pwa, robots, security, typescript, vite, webVitals\n- Runtime Modules: nuxt-security@2.2.0, @pinia/nuxt@0.11.1, @nuxtjs/i18n@10.0.0-rc.1, @nuxtjs/robots@5.2.11, @nuxt/content@3.6.1, @nuxt/fonts@0.11.4, @nuxt/icon@1.15.0, @nuxt/image@1.10.0, @nuxtjs/color-mode@3.5.2, @vueuse/nuxt@13.4.0, @vueuse/motion/nuxt@3.0.3, @vite-pwa/nuxt@1.0.4, @nuxtjs/web-vitals@0.2.7, @nuxt/eslint@1.4.1, @nuxt/test-utils/module@3.19.1\n- Build Modules: -\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-jjpn8kps\n\nRun `pnpm typecheck` after installing dependencies (`pnpm install`), and see the error.\n\n### Describe the bug\n\nThe next i18n implementation breaks types augmentation, for example, defining PageMeta additional props leads to TS error:\n// auth.d.ts\n```ts\ntype AccountRoleType = 'admin' | 'user'\n\ndeclare module '#app' {\n interface PageMeta {\n roles?: AccountRoleType[]\n }\n}\n\nexport {}\n```\nand in middleware/auth.ts\n```ts\nexport default defineNuxtRouteMiddleware(async (to) => {\n if (!to.meta.roles?.includes('admin')) {\n throw createError({\n statusCode: 404,\n message: 'Not found',\n fatal: true,\n })\n }\n})\n```\n\nleads to this TS error:\n```\nerror TS2339: Property 'includes' does not exist on type '{}'.\n```\n\n### Additional context\n\nIf I remember correctly, nuxt/i18n module v10.0.0-beta.1 was working correctly. A couple of days ago I tried beta.10 and today - rc.1, and such TS error start throwing.\n\n### Logs\n\n```shell\npnpm typecheck\n\n> nuxt-app@ typecheck /home/projects/github-jjpn8kps\n> nuxi typecheck\n\n\n[2:28:51 PM] ERROR (node:19) ExperimentalWarning: WASI is an experimental feature and might change at any time\n(Use node --trace-warnings ... to show where the warning was created)\n\n\n WARN Slow module @nuxt/devtools took 23273.91ms to setup. 2:29:30 PM\n\nℹ Running with compatibility version 4 nuxt 2:29:41 PM\napp/middleware/auth.ts:2:23 - error TS2339: Property 'includes' does not exist on type '{}'.\n\n2 if (!to.meta.roles?.includes('admin')) {\n ~~~~~~~~\n\n\nFound 1 error in app/middleware/auth.ts:2\n\n\n ERROR Process exited with non-zero status (2) 2:30:30 PM\n\n at new x (node_modules/.pnpm/tinyexec@1.0.1/node_modules/tinyexec/dist/main.js:440:5)\n at R._waitForOutput (node_modules/.pnpm/tinyexec@1.0.1/node_modules/tinyexec/dist/main.js:548:13)\n at async Object.run (node_modules/.pnpm/@nuxt+cli@3.25.1/node_modules/@nuxt/cli/dist/chunks/typecheck.mjs:60:7)\n at async runCommand (node_modules/.pnpm/citty@0.1.6/node_modules/citty/dist/index.mjs:337:16)\n at async runCommand (node_modules/.pnpm/citty@0.1.6/node_modules/citty/dist/index.mjs:328:11)\n at async Module.runMain (node_modules/.pnpm/citty@0.1.6/node_modules/citty/dist/index.mjs:466:7) \n\n\n\n ERROR Process exited with non-zero status (2) 2:30:30 PM\n\n ELIFECYCLE Command failed with exit code 1.\n```",[3067],{"name":3020,"color":3021},3713,"[v10.0.0-rc.1] Breaks PageMeta augmentation","2025-06-30T19:00:03Z","https://github.com/nuxt-modules/i18n/issues/3713",0.6814296,{"description":3074,"labels":3075,"number":3082,"owner":3026,"repository":3027,"state":3059,"title":3083,"updated_at":3084,"url":3085,"score":3086},"### Environment\n\n------------------------------\n- Operating System: Darwin\n- Node Version: v20.18.0\n- Nuxt Version: 3.16.0\n- CLI Version: 3.22.5\n- Nitro Version: 2.11.6\n- Package Manager: pnpm@9.12.2\n- Builder: -\n- User Config: modules, devtools, app, css, runtimeConfig, future, compatibilityDate, vite, postcss, eslint, i18n, image, prismic\n- Runtime Modules: @nuxt/eslint@1.2.0, @nuxtjs/prismic@4.1.0, @nuxt/fonts@0.11.0, @nuxtjs/i18n@9.3.1, @nuxt/image@1.9.0, @vueuse/nuxt@13.0.0\n- Build Modules: -\n------------------------------\n\n### Reproduction\n\nhttps://stackblitz.com/edit/bobbiegoede-nuxt-i18n-starter-w8n5eqto?file=pages%2Findex.vue\n\n### Describe the bug\n\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\n\n```",[3076,3079],{"name":3077,"color":3078},"🍰 p2-nice-to-have","0e8a16",{"name":3080,"color":3081},"scope: components","B327C3",3402,"Double nested `NuxtLinkLocale`","2025-05-30T19:25:27Z","https://github.com/nuxt-modules/i18n/issues/3402",0.6839174,{"description":3088,"labels":3089,"number":3091,"owner":3026,"repository":3027,"state":3059,"title":3092,"updated_at":3093,"url":3094,"score":3095},"### Environment\n\nNuxt 4\ni18n v10.0.0-rc.3\n\n### Reproduction\n\nStarting the dev server in a project using `@nuxtjs/i18n v10.0.0-rc3` gives:\n\n\u003Cimg width=\"764\" height=\"130\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/33cd1ad9-b448-4b6e-aee1-a3f77626b3db\" />\n\n### Describe the bug\n\n`optimizeDeps.include` is filled here now:\n\nhttps://github.com/nuxt-modules/i18n/blame/7afd44a25a164def10fa24b553af9cda78576edb/src/alias.ts#L48\n\nBut seemingly only relevant for the source project itself?\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\n\n```",[3090],{"name":3077,"color":3078},3731,"Vite warning in dev - failed to resolve dependency in `optimizeDeps.include`","2025-07-20T18:00:28Z","https://github.com/nuxt-modules/i18n/issues/3731",0.68567586,{"description":3097,"labels":3098,"number":3102,"owner":3026,"repository":3027,"state":3059,"title":3103,"updated_at":3104,"url":3105,"score":3106},"### Environment\n\n- Operating System: Windows_NT\n- Node Version: v22.14.0\n- Nuxt Version: 3.16.2\n- CLI Version: 3.24.1\n- Nitro Version: 2.11.8\n- Package Manager: yarn@1.22.22\n- Builder: -\n- User Config: devtools, app, modules, css, build, i18n, site, compatibilityDate\n- Runtime Modules: @nuxtjs/tailwindcss@6.13.2, @nuxt/image@1.9.0, @nuxtjs/i18n@9.5.3, @hypernym/nuxt-anime@2.1.1, @nuxtjs/sitemap@7.2.10, @nuxtjs/robots@5.2.9 \n- Build Modules: -\n\n### Reproduction\n\nhttps://stackblitz.com/edit/bobbiegoede-nuxt-i18n-starter-yr15sl4p?file=locales%2Fen%2Findex.ts\n\n### Describe the bug\n\nI’m trying to auto-import all `.json` files in a ` locales/[lang]/` folder using `import.meta.glob` in each language’s `index.ts` file. This worked fine in Nuxt 2 using `require.context`, but in Nuxt 3 with` @nuxtjs/i18n`, I’m encountering the following error:\n\n`[plugin:vite:esbuild] Failed locale loading: 'unknown' type in **locales/ar/index.ts`**\n\n\n### Additional context\n\nWhat I’m Trying to Do\n```\n// locales/ar/index.ts\nconst modules = import.meta.glob('./**/*.json', { eager: true })\n\nconst messages: Record\u003Cstring, any> = {}\n\nfor (const path in modules) {\n const key = path\n .replace('./', '')\n .replace('.json', '')\n .replace(/\\//g, '.')\n messages[key] = modules[path].default\n}\n\nexport default messages\n```\n```\n// nuxt.config.ts\ni18n: {\n strategy: 'prefix_except_default',\n defaultLocale: 'ar',\n lazy: true,\n langDir: 'locales',\n locales: [\n { code: 'ar', name: 'Arabic', file: 'ar/index.ts' },\n { code: 'en', name: 'English', file: 'en/index.ts' }\n ]\n}\n```\n\nI expected Nuxt to allow ` import.meta.glob` usage in language-specific ` index.ts` files to auto-import and combine all locale messages from nested JSON files.\n\n**What Happened Instead**\n\nDynamic path template literals are not supported by Vite\n\nEven static `../locales/ar/**/*.json` fails due to path resolution issues\n\nErrors like `unknown type` or `Failed locale loading` appear\n\n\n**Workarounds Tried**\nUsing `require.context` – unsupported in Vite\n\nSwitching to manual static imports – works but violates DRY and doesn't scale\n\nMoving the glob loader to a utility file – still fails due to unresolved paths\n\nReplacing `lodash.set` with custom merging logic – no difference in behavior\n\nChecked paths, JSON validity, eager option – no effect\n\n### Logs\n\n```shell\n\n```",[3099],{"name":3100,"color":3101},"need more info","e295d6",3536,"Failed locale loading with static JSON imports in Nuxt 3","2025-05-23T10:27:57Z","https://github.com/nuxt-modules/i18n/issues/3536",0.7053223,{"description":3108,"labels":3109,"number":3110,"owner":3026,"repository":3027,"state":3059,"title":3111,"updated_at":3112,"url":3113,"score":3114},"In order for the runtime config merging to work properly, there must be an entry for each locale in `domainLocales`. This can be done in the nuxt.config like so:\n\n\n```ts\ndefineNuxtConfig({\n runtimeConfig: {\n public: i18n: {\n domainLocales: {\n en: { domain: '' },\n de: { domain: '' }\n }\n }\n }\n})\n```\n\nBut to make this easier for users, nuxt-i18n could pre-configure these values based on `locales` module option.",[],3694,"Pre-populate `domainLocales` based on module configuration","2025-06-25T21:20:58Z","https://github.com/nuxt-modules/i18n/issues/3694",0.7060131,{"description":3116,"labels":3117,"number":3121,"owner":3026,"repository":3027,"state":3059,"title":3122,"updated_at":3123,"url":3124,"score":3125},"### Environment\r\n\r\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v18.16.0\r\n- Nuxt Version: 3.7.1\r\n- CLI Version: 3.7.3\r\n- Nitro Version: 2.6.2\r\n- Package Manager: pnpm@8.6.12\r\n- Builder: -\r\n- User Config: extends, telemetry, ssr, fontMetrics, nitro, routeRules, runtimeConfig, build, modules, delayHydration, image, components, bugsnag, devtools, i18n, experimental, pwa, app, dnGraphqlClient, vite, plugins\r\n- Runtime Modules: @nuxtjs/fontaine@0.4.1, @pinia/nuxt@0.4.11, @nuxt/devtools@0.8.2, @vite-pwa/nuxt@0.1.0, nuxt-bugsnag@7.0.0, @digitalnatives/css-variables/nuxt@5.1.3, @digitalnatives/graphql-client@4.0.3, @nuxtjs/i18n@8.0.0-rc.4, @nuxt/image@1.0.0-rc.1, nuxt-delay-hydration@1.2.1, @digitalnatives/composables@2.0.1\r\n- Build Modules: -\r\n------------------------------\r\n\r\n### Reproduction\r\n\r\nA naïve reproduction is the following:\r\n\r\n```js\r\nconst route = useRoute(); \r\nconst locale = useLocale();\r\n\r\n// On switch, this will first log the NEW locale with the OLD path, then it will trigger a second time, logging the NEW locale with the NEW path\r\nwatchEffect(() => {\r\n console.log(route.fullPath);\r\n console.log(locale);\r\n});\r\n```\r\n\r\nAdd it to a global component in the layout that doesn't get mounted/umounted on URI change.\r\n\r\n\r\n\r\n### Describe the bug\r\n\r\nWhen using prefixed routes and a language switcher as described in the docs, it seems the locale changes before the route does.\r\n\r\nWhen watching the locale with `useAsyncData()` or `useLazyAsyncData()` this will cause the results of this call to be associated with the wrong URL/path, which then has a side-effect of refetching API data which was already pre-rendered in Nuxt static mode. Therefore, the pre-rendered payload is NOT used in this pattern, even though it should.\r\n\r\nI've also seen this lead to data mismatching to the wrong paths, but this is a bit harder to create a reproduction for.\r\n\r\n### Additional context\r\n\r\nMy current workaround is this;\r\n\r\ncomposable:\r\n```js\r\nexport const useVariables = () => {\r\n const route = useRoute();\r\n const { $i18n }: any = useNuxtApp();\r\n // Don't automatically update the site and url to ensure they both change at the same time\r\n variables.uri = toValue(route.path);\r\n variables.lang = toValue($i18n?.localeProperties)?.apiLanguageHandle;\r\n\r\n // Update variables manually when the route changes, at this point both the locale AND the URI are correct.\r\n watch(() => route.path, () => {\r\n variables.uri = toValue(route.path);\r\n variables.lang = toValue($i18n?.localeProperties)?.apiLanguageHandle;\r\n });\r\n return { variables };\r\n});\r\n```\r\n\r\nthen:\r\n\r\n```js\r\nconst { variables } = useVariables();\r\nuseAsyncData(() => { console.log('trigger!') } , { watch: [ variables ] });\r\n```\r\n\r\n\r\nPerhaps it would be possible to inject the locale & locale properties into the localized route meta? That way we could just watch the route and apply the language from that.\r\n\r\nRelates to #2278 \r\n\r\n### Logs\r\n\r\n_No response_",[3118],{"name":3119,"color":3120},"switch locale","D2FCC6",2377,"`locale` changes BEFORE the route path does, which causes issues with (static) `asyncData`-payloads","2025-05-16T11:44:11Z","https://github.com/nuxt-modules/i18n/issues/2377",0.71016556,["Reactive",3127],{},["Set"],["ShallowReactive",3130],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fGsiX-LmdwoPsI7OQcN3u5_iAnoThNuPh1Zi-2OhtQaE":-1},"/nuxt-modules/i18n/3729"]