\n\n### Reproduction\n\nHere is the repo where the issue is happening:\nhttps://github.com/PABERTHIER/atelier-libr-emotions\nFor this PR more precisely:\nhttps://github.com/PABERTHIER/atelier-libr-emotions/pull/22/files\n\nYou can find the nuxt-config here:\nhttps://github.com/PABERTHIER/atelier-libr-emotions/blob/main/nuxt.config.ts\n\nI can't put into production the issue since it will break the images rendering.\nBut you can find more information in the **Describe the bug** section.\n\n### Describe the bug\n\nI know that sounds weird because nuxtjs/i18n is not tied to NuxtImg / IPX / Vercel but still, the issue is only happening when I upgrade the nuxtjs/i18n package from 9.5.6 to 10.0.6.\nI've tried many things to resolve this issue but without success.\nI've checked all breaking changes and I don't think those have a direct impact to this issue.\nCould it be related to all new packages added / modified ?\nOr maybe something about I18n intercepting the route ?\n\nI know there already are some issues like this in the NuxtImg repo:\nhttps://github.com/nuxt/image/issues/1281\nBut still, I never experienced it since the migration to V10.\nWhen rollbacking to 9.5.6 the issue disappears so there is a direct link.\n\nFor the record, it is intentional to use IPX as the provider instead of Vercel.\n\nSince the upgrade, I'm getting 404 for images rendered with IPX:\n{error: {message: \"[404] [IPX_FILE_NOT_FOUND] File not found: /paintings/celestial-collision.jpg\"}}\n\n- **Before the upgrade**:\n\u003Cimg width=\"1016\" height=\"715\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/ce265489-8260-4e83-9936-9a4a542be950\" />\n\n- **After the upgrade**:\n\u003Cimg width=\"1022\" height=\"352\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/1f3f854b-ceee-41b0-935d-9fdaef11c21d\" />\n\u003Cimg width=\"1410\" height=\"196\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/c93d82ec-735c-4485-95ac-eb8e816c367a\" />\n\u003Cimg width=\"666\" height=\"57\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/f33f4988-4b44-4e0e-9bbe-c2ad7b91a07a\" />\n\n- **For the generated HTML**:\nBefore the upgrade:\n\u003Cimg width=\"1126\" height=\"136\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/41225aa1-a371-43f8-bb9b-14cc5307b515\" />\n\nAfter the upgrade:\n\u003Cimg width=\"1123\" height=\"103\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/8f47c7c9-ba34-4fe5-a83f-10712fc2876b\" />\n\n### Additional context\n\nIf you need more information, feel free to ask, I will do my best to provide anything useful.\nI'd happy to help.\nI wanted to point out that issue and try to understand what is really happening under the hood.\n\n### Logs\n\n```shell\n\n```",[3211],{"name":3175,"color":3176},3796,"Unable to display NuxtImg on Vercel when using the IPX provider since V10 migration","2025-08-23T12:16:49Z","https://github.com/nuxt-modules/i18n/issues/3796",0.7406464,{"description":3218,"labels":3219,"number":3221,"owner":3181,"repository":3182,"state":3183,"title":3222,"updated_at":3223,"url":3224,"score":3225},"### 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```",[3220],{"name":3175,"color":3176},3755,"_ctx.$t is not a function","2025-07-23T13:58:47Z","https://github.com/nuxt-modules/i18n/issues/3755",0.7445803,{"description":3227,"labels":3228,"number":3231,"owner":3181,"repository":3182,"state":3183,"title":3232,"updated_at":3233,"url":3234,"score":3235},"### Environment\n\n Operating System: Darwin\n- Node Version: v22.15.1\n- Nuxt Version: 4.0.1\n- CLI Version: 3.26.4\n- Nitro Version: 2.12.4\n- Package Manager: pnpm@10.11.0\n- Builder: -\n- User Config: runtimeConfig, devtools, modules, app, css, i18n, image, telemetry, sentry, storyblok, devServer, sourcemap, vite, extends, compatibilityDate\n- Runtime Modules: @nuxtjs/i18n@9.5.6, @pinia/nuxt@0.11.2, @nuxt/image@1.10.0, @nuxt/eslint@1.7.0, @nuxtjs/stylelint-module@5.2.1, @storyblok/nuxt@8.0.1, @sentry/nuxt/module@9.40.0\n\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/dry-violet-pg2j9q\n\nadd en-GB.json \n```\n{\n \"header\": {\n \"apply-as-developer\": \"Apply as a developer\",\n \"find-developer\": \"FIND A DEVELOPER\",\n \"sign-in\": \"LOG IN\"\n }\n}\n```\n\nadd empty sv-SE.json - `{}`\n\nnuxt configs\n\n```\n i18n: {\n baseUrl: process.env.BASE_URL,\n strategy: 'prefix_and_default',\n defaultLocale: 'en',\n detectBrowserLanguage: false,\n compilation: {\n strictMessage: false,\n escapeHtml: false,\n },\n vueI18n: '../i18n/i18n.config.ts',\n locales: [\n {\n code: 'en',\n language: 'en-GB',\n name: 'English',\n file: 'en-GB.json',\n isCatchallLocale: true,\n },\n {\n code: 'sv',\n language: 'sv-SE',\n name: 'Svenska',\n file: 'sv-SE.json',\n },\n ]\n}\n```\n\ni18n.config.ts\n```\nexport default defineI18nConfig(() => ({\n locale: 'en',\n fallbackLocale: 'en',\n fallbackRoot: true,\n fallbackRootWithEmptyString: true,\n}));\n```\n\n\n\n\n### Describe the bug\n\nOn my new nuxt v4 project the fallbacks didn't work and I was getting the following errors\n```\nHeader.vue:43 [intlify] Not found 'header.find-developer' key in 'sv' locale messages.\nHeader.vue:43 [intlify] Fall back to translate 'header.find-developer' key with 'en' locale. \nHeader.vue:43 [intlify] Not found 'header.find-developer' key in 'en' locale\n```\nalthough I had translations on english.\n\nI changed package version to to - \"@nuxtjs/i18n\": \"^9.5.4\" and it is working like a charm again.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\n\n```",[3229,3230],{"name":3175,"color":3176},{"name":3202,"color":3179},3760,"Fallback language does not work on v10.0.2","2025-07-25T12:56:26Z","https://github.com/nuxt-modules/i18n/issues/3760",0.74594164,{"description":3237,"labels":3238,"number":3245,"owner":3181,"repository":3182,"state":3246,"title":3247,"updated_at":3248,"url":3249,"score":3250},"### Environment\n\n- Operating System: Darwin\n- Node Version: v22.11.0\n- Nuxt Version: 3.16.2\n- CLI Version: 3.25.0\n- Nitro Version: 2.11.9\n- Package Manager: pnpm@9.12.3\n- Builder: -\n- User Config: compatibilityDate, devtools, nitro, modules\n- Runtime Modules: nitro-cloudflare-dev@0.2.2\n- Build Modules: -\n\n### Reproduction\n\nhttps://github.com/dongnaebi/nuxt-cf\n\n### Describe the bug\n\nAfter upgrading i18n to version 9.5.3, I discovered a hydration mismatch in the production environment (Cloudflare Worker). Upon investigation, I found that `v-html` wasn't rendering properly. My code is as follows:\n\n```html\n\u003Ch1 v-html=\"t('hero').replace('\\n', '\u003Cbr>')\">\u003C/h1>\n```\n\nDowngrading to 9.5.2 resolves the issue, and everything works fine. Running `nuxt dev` locally also works, but when building locally and using `wrangler dev`, the problem can be reproduced.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\n\n```",[3239,3242],{"name":3240,"color":3241},"possible regression","B78041",{"name":3243,"color":3244},"scope: hydration","008866",3581,"closed","v-html in version 9.5.3 not rendering correctly","2025-05-28T16:37:16Z","https://github.com/nuxt-modules/i18n/issues/3581",0.6508677,{"description":3252,"labels":3253,"number":3258,"owner":3181,"repository":3182,"state":3246,"title":3259,"updated_at":3260,"url":3261,"score":3262},"### Environment\n\n------------------------------\n- Operating System: Linux\n- Node Version: v20.9.0\n- Nuxt Version: 4.0.2\n- CLI Version: 3.27.0\n- Nitro Version: 2.11.11\n- Package Manager: pnpm@8.10.2\n- Builder: -\n- User Config: compatibilityDate, devtools, modules, i18n\n- Runtime Modules: @nuxtjs/i18n@10.0.3\n- Build Modules: -\n------------------------------\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/distracted-cloud-8vmqrl\n\n### Describe the bug\n\nWhen using skipSettingLocaleOnNavigate: true as documented — along with finalizePendingLocaleChange() during page transitions — hydration errors occur on localized pages.\n\nOn the server, the correct locale seems to be applied, but the client expects the default locale, which causes a mismatch.\n\n**Steps to reproduce:**\n\n- Visit / and switch locales → works as expected.\n- Visit /fr directly → hydration error on first load.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\n[Vue warn]: Hydration text content mismatch on HTMLDivElement \n - rendered on server: Bonjour!\n - expected on client: Hello! \n at \u003CIndex onVnodeUnmounted=fn\u003ConVnodeUnmounted> ref=Ref\u003C undefined > > \n at \u003CRouteProvider key=\"/fr\" vnode= {__v_isVNode: true, __v_skip: true, type: Object, props: Object, key: null, …} route= {fullPath: '/fr', hash: '', query: Object, name: 'index___fr', path: '/fr', …} ... > \n at \u003CBaseTransition onAfterLeave= [ƒ] mode=\"out-in\" onBeforeEnter=fn\u003ConBeforeEnter> ... > \n at \u003CTransition onAfterLeave= [ƒ] name=\"my\" mode=\"out-in\" ... > \n at \u003CRouterView name=undefined route=undefined > \n at \u003CNuxtPage transition= {name: 'my', mode: 'out-in', onBeforeEnter: ƒ} > \n at \u003CApp key=4 > \n at \u003CNuxtRoot>\nconsole.\u003Ccomputed> @ index.js:9\nconsole.\u003Ccomputed> @ index.js:9\nwarn$1 @ runtime-core.esm-bundler.js?v=41ae25c7:51\nhydrateElement @ runtime-core.esm-bundler.js?v=41ae25c7:1924\nhydrateNode @ runtime-core.esm-bundler.js?v=41ae25c7:1781\nhydrateSubTree @ runtime-core.esm-bundler.js?v=41ae25c7:5350\ncomponentUpdateFn @ runtime-core.esm-bundler.js?v=41ae25c7:5368\nrun @ reactivity.esm-bundler.js?v=41ae25c7:208\n [Vue warn]: Hydration text content mismatch on HTMLDivElement \n - rendered on server: Bonjour!\n - expected on client: Hello! \n at \u003CIndex onVnodeUnmounted=fn\u003ConVnodeUnmounted> ref=Ref\u003C undefined > > \n at \u003CRouteProvider key=\"/fr\" vnode= {__v_isVNode: true, __v_skip: true, type: Object, props: Object, key: null, …} route= {fullPath: '/fr', hash: '', query: Object, name: 'index___fr', path: '/fr', …} ... > \n at \u003CBaseTransition onAfterLeave= [ƒ] mode=\"out-in\" onBeforeEnter=fn\u003ConBeforeEnter> ... > \n at \u003CTransition onAfterLeave= [ƒ] name=\"my\" mode=\"out-in\" ... > \n at \u003CRouterView name=undefined route=undefined > \n at \u003CNuxtPage transition= {name: 'my', mode: 'out-in', onBeforeEnter: ƒ} > \n at \u003CApp key=4 > \n at \u003CNuxtRoot>\n```",[3254,3257],{"name":3255,"color":3256},"❗ p4-important","d93f0b",{"name":3240,"color":3241},3766,"[V10] Hydration mismatch when using skipSettingLocaleOnNavigate: true","2025-07-31T11:56:49Z","https://github.com/nuxt-modules/i18n/issues/3766",0.6650056,{"description":3264,"labels":3265,"number":3267,"owner":3181,"repository":3182,"state":3246,"title":3268,"updated_at":3269,"url":3270,"score":3271},"### Environment\n\n- Operating System: Darwin\n- Node Version: v22.11.0\n- Nuxt Version: 3.16.2\n- CLI Version: 3.25.0\n- Nitro Version: 2.11.9\n- Package Manager: pnpm@9.12.3\n- Builder: -\n- User Config: compatibilityDate, devtools, nitro, modules, i18n\n- Runtime Modules: @nuxtjs/i18n@9.5.6, nitro-cloudflare-dev@0.2.2\n- Build Modules: -\n\n\n### Reproduction\n\nhttps://github.com/dongnaebi/nuxt-cf\n\n### Describe the bug\n\nReproduction steps:\n\n1. Run `npm run dev`, then open localhost:3000. The rendering result is as shown (Node.js):\n\n\u003Cimg width=\"370\" height=\"194\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/d336d845-027c-40a0-aaa6-3d9ab186571d\" />\n\nThis is the expected result.\n\n2. Run `npm run preview`, then open localhost:8787. The rendering result is as shown (Cloudflare Worker):\n\n\u003Cimg width=\"414\" height=\"180\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/81b0cff5-8f94-4d1c-85a0-c75355e0ec0e\" />\n\nThis is the incorrect result.\n\nI tried downgrading to version 9.4.0, but it didn't resolve the issue either.\n\n\nBy the way, this bug (https://github.com/nuxt-modules/i18n/issues/3581) has not yet been fixed, as seen in the images above.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\n\n```",[3266],{"name":3175,"color":3176},3725,"Nested message not working in Cloudflare Worker environment","2025-07-22T21:31:01Z","https://github.com/nuxt-modules/i18n/issues/3725",0.6885296,{"description":3273,"labels":3274,"number":3279,"owner":3181,"repository":3182,"state":3246,"title":3280,"updated_at":3281,"url":3282,"score":3283},"### 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```",[3275,3278],{"name":3276,"color":3277},"upstream","fbca04",{"name":3202,"color":3179},3753,"在 nuxt4.0.2 里使用 \"@nuxtjs/i18n\": \"^10.0.2\" 热更新报错","2025-07-24T09:13:52Z","https://github.com/nuxt-modules/i18n/issues/3753",0.69226104,["Reactive",3285],{},["Set"],["ShallowReactive",3288],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fZOPjKIueJzCtgSW30dUhoV4uWoALknfuYJL4238OWaw":-1},"/nuxt-modules/i18n/3681"]