\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```",[3176],{"name":3177,"color":3178},"pending triage","c2e0c6",3796,"nuxt-modules","i18n","open","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.75661826,{"description":3188,"labels":3189,"number":3191,"owner":3180,"repository":3181,"state":3182,"title":3192,"updated_at":3193,"url":3194,"score":3195},"### 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```",[3190],{"name":3177,"color":3178},3755,"_ctx.$t is not a function","2025-07-23T13:58:47Z","https://github.com/nuxt-modules/i18n/issues/3755",0.76059693,{"description":3197,"labels":3198,"number":3200,"owner":3180,"repository":3181,"state":3182,"title":3201,"updated_at":3202,"url":3203,"score":3204},"### Environment\n\n- Operating System: Linux\n- Node Version: v20.19.0\n- Nuxt Version: 4.0.2\n- CLI Version: 3.27.0\n- Nitro Version: 2.12.4\n- Package Manager: npm@10.8.2\n- Builder: -\n- User Config: modules, $development, $production, devtools, css, mdc, runtimeConfig, routeRules, experimental, compatibilityDate, nitro, vite, hooks, eslint, fonts, i18n, icon, image, shadcn, supabase, tiptap\n- Runtime Modules: @sentry/nuxt/module@9.42.1, @nuxtjs/color-mode@3.5.2, @nuxtjs/tailwindcss@7.0.0-beta.0, shadcn-nuxt@2.2.0, @nuxtjs/i18n@10.0.3, @nuxtjs/supabase@1.6.0, @nuxt/icon@1.15.0, @nuxt/eslint@1.7.1, nuxt-tiptap-editor@2.3.1, @nuxtjs/mdc@0.17.2, @vueuse/nuxt@13.6.0, @nuxt/image@1.10.0, @nuxt/fonts@0.11.4, nuxt-time@1.0.3, @nuxt/icon@1.15.0, @nuxtjs/leaflet@1.3.2\n- Build Modules: -\n\n### Reproduction\n\nhttps://github.com/Chrissi2812/nuxt_bug_reports/tree/i18n/types-router\n--- Or ---\nhttps://stackblitz.com/edit/github-9m9yc3ub\n\n\u003Cimg width=\"502\" height=\"411\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/f725bb5d-c55d-4200-b26b-8d76338624b0\" />\n\n### Describe the bug\n\nWith the default settings and `experimental.typedPages: true` the generated types are not correctly picked up.\n\nIf I rename `RouteNamedMapI18n` to `RouteNamedMap` the types are available.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\n\n```",[3199],{"name":3177,"color":3178},3771,"useRoute needs suffix to work","2025-08-05T16:28:06Z","https://github.com/nuxt-modules/i18n/issues/3771",0.76255816,{"description":3206,"labels":3207,"number":3209,"owner":3180,"repository":3181,"state":3182,"title":3210,"updated_at":3211,"url":3212,"score":3213},"### Environment\n\n------------------------------\n- Operating System: Windows_NT\n- Node Version: v22.17.0\n- Nuxt Version: 4.1.2\n- CLI Version: 3.28.0\n- Nitro Version: 2.12.5\n- Package Manager: pnpm@10.17.0\n- Builder: -\n- User Config: sourcemap, hub, app, imports, compatibilityDate, devtools, modules, i18n, eslint, primevue\n- Runtime Modules: @nuxt/eslint@1.9.0, @vueuse/nuxt@13.9.0, @unocss/nuxt@66.5.1, @primevue/nuxt-module@4.3.9, @nuxtjs/i18n@10.0.6, @nuxthub/core@0.9.0\n- Build Modules: -\n------------------------------\n\n### Reproduction\n\nhttps://github.com/s3xysteak/repro-nuxt-i18n\n\n### Describe the bug\n\nWhen using custom messages (plz check `nuxt.config.ts`.i18n and `i18n/i18n.config.ts`), it looks good on dev, but throw error on prod.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\nFailed to load messages for locale \"en\" FetchError: [GET] \"/_i18n/KWmwzEHP/en/messages.json\": 500 Server Error\n```",[3208],{"name":3177,"color":3178},3830,"Using custom messages reports error `Failed to load messages .... _i18n/x/xx/messages.json\": 500 Server Error` on prod but no error on dev","2025-09-26T15:52:35Z","https://github.com/nuxt-modules/i18n/issues/3830",0.7648468,{"description":3215,"labels":3216,"number":3229,"owner":3180,"repository":3181,"state":3182,"title":3230,"updated_at":3231,"url":3232,"score":3233},"### Environment\n\n•\tNuxt: 4.x\n•\t@nuxtjs/i18n: 10.x\n•\tNode.js: 20+\n•\tOS: macos\n•\tBrowser:chrome\n\n### Reproduction\n\n1.\tCreate a fresh Nuxt 4 project\n2.\tInstall @nuxtjs/i18n@^10\n3.\tMinimal nuxt.config.ts:\n```\nexport default defineNuxtConfig({\n i18n: {\n strategy: 'prefix',\n defaultLocale: 'en-US',\n locales: [\n { code: 'en-US', name: 'English' },\n { code: 'zh-CN', name: '简体中文' }\n ],\n detectBrowserLanguage: false,\n skipSettingLocaleOnNavigate: true,\n experimental: {\n preload: false,\n stripMessagesPayload: false\n }\n }\n})\n```\n4.\tRun npm run dev and open the homepage — you’ll see two logs for the same locale.\n\nCall stacks from first page load:\n\nCall 1 (App initialization)\n```\nloadMessagesFromClient (…/node_modules/@nuxtjs/i18n/dist/runtime/utils/load-messages.mjs:XX)\nloadAndSetLocale (…/node_modules/@nuxtjs/i18n/dist/runtime/utils/locale.mjs:XX)\nsetup (route-locale-detect.client.mjs:12)\napplyPlugins (…/node_modules/nuxt/dist/app/entry.mjs:XX)\ninitApp (…/node_modules/nuxt/dist/app/entry.mjs:XX)\n```\nCall 2 (Initial navigation / route normalization)\n```\nloadMessagesFromClient (…/node_modules/@nuxtjs/i18n/dist/runtime/utils/load-messages.mjs:XX)\nloadAndSetLocale (…/node_modules/@nuxtjs/i18n/dist/runtime/utils/locale.mjs:XX)\nsetup (route-locale-detect.client.mjs:13)\nrouter.replace / pushWithRedirect (…/node_modules/vue-router/dist/vue-router.mjs:XX)\n```\n\n### Describe the bug\n\nWhen using @nuxtjs/i18n v10 with Nuxt 4, loadMessagesFromClient is executed twice on the client during the first page load — once during app initialization and once again after the initial navigation normalization.\nEven with minimal config, browser language detection disabled, and skipSettingLocaleOnNavigate enabled, this still happens.\nFor runtime-loaded translations (e.g., from a remote API), the second internal load overwrites messages from the first, leading to inconsistent output.\n\n### Additional context\n\n•\tTried disabling detectBrowserLanguage and enabling skipSettingLocaleOnNavigate\n•\tNo custom route middlewares or manual setLocale calls\n•\tToggling experimental.preload had no effect\n•\tqueueMicrotask cannot guarantee correct overwrite order if local message files are large; only setTimeout(0) reliably delays after the second call, which is not ideal\n•\tLikely cause: route-locale-detect client plugin calls loadAndSetLocale both during app initialization and after initial navigation.\n•\tSuggestion: Provide an option to skip the second call in client mode, or internally cache per-locale loader results so repeated calls for the same locale return the same Promise instead of overwriting.\n\n### Logs\n\n```shell\n\n```",[3217,3220,3223,3226],{"name":3218,"color":3219},"bug 🐛","ee0701",{"name":3221,"color":3222},"performance","006b75",{"name":3224,"color":3225},"scope: dynamic resources","38FB12",{"name":3227,"color":3228},"scope: runtime","84b6eb",3773,"Messages fetched and merged twice on client initialization","2025-09-11T16:11:22Z","https://github.com/nuxt-modules/i18n/issues/3773",0.7665626,{"description":3235,"labels":3236,"number":3241,"owner":3180,"repository":3181,"state":3182,"title":3242,"updated_at":3243,"url":3244,"score":3245},"### 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```",[3237,3238],{"name":3177,"color":3178},{"name":3239,"color":3240},"need reproduction","CD234A",3760,"Fallback language does not work on v10.0.2","2025-07-25T12:56:26Z","https://github.com/nuxt-modules/i18n/issues/3760",0.77022254,{"description":3247,"labels":3248,"number":3250,"owner":3180,"repository":3181,"state":3251,"title":3252,"updated_at":3253,"url":3254,"score":3255},"### Describe the feature\n\nPlease update oxc-parser to [`0.70.0`](https://github.com/oxc-project/oxc/pull/11061)\n\nthis includes support for arm musl\n\n### Additional information\n\n- [ ] Would you be willing to help implement this feature?\n- [ ] Could this feature be implemented as a module?\n\n### Final checks\n\n- [x] Read the [contribution guide](https://nuxt.com/docs/community/contribution) (The contribution guideline of nuxt-modules/i18n is compliant with Nuxt too).\n- [x] Check existing [discussions](https://github.com/nuxt-modules/i18n/discussions) and [issues](https://github.com/nuxt/nuxt/issues).",[3249],{"name":3177,"color":3178},3605,"closed","update oxc-parser","2025-05-16T09:07:34Z","https://github.com/nuxt-modules/i18n/issues/3605",0.6975764,{"description":3257,"labels":3258,"number":3262,"owner":3180,"repository":3181,"state":3251,"title":3263,"updated_at":3264,"url":3265,"score":3266},"### Environment\r\n\r\n------------------------------\r\n- Operating System: Windows_NT\r\n- Node Version: v21.6.2\r\n- Nuxt Version: 3.11.0\r\n- CLI Version: 3.10.1\r\n- Nitro Version: 2.9.4\r\n- Package Manager: npm@10.2.4\r\n- Builder: -\r\n- User Config: modules, devtools\r\n- Runtime Modules: @nuxtjs/i18n@8.2.0\r\n- Build Modules: -\r\n------------------------------\r\n\r\n### Reproduction\r\n\r\nhttps://github.com/frasza/i18n-warn\r\n\r\nSpin up dev server, open dev tools and click on NuxtLink. Warning appears.\r\n\r\n### Describe the bug\r\n\r\nRecently I noticed warning popup in my Nuxt project and I have tried to set up fresh Nuxt project with i18n dependacy and I still get warning when for navigating across pages.\r\n\r\nWarning:\r\n```\r\n[Vue warn]: Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.\r\n```\r\n\r\nNoticed that I get warning the moment I add i18n to the modules.\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Logs\r\n\r\n_No response_",[3259],{"name":3260,"color":3261},"🍰 p2-nice-to-have","0e8a16",2856,"Warning: Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.","2025-05-23T11:11:02Z","https://github.com/nuxt-modules/i18n/issues/2856",0.7418232,{"description":3268,"labels":3269,"number":3271,"owner":3180,"repository":3181,"state":3251,"title":3272,"updated_at":3273,"url":3274,"score":3275},"### Environment\n\nOperating System: Linux\nNode Version: v22.11.0\n\"dependencies\": {\n \"@element-plus/icons-vue\": \"^2.3.1\",\n \"@nuxtjs/i18n\": \"^9.5.3\",\n \"@pinia/nuxt\": \"^0.10.1\",\n \"nuxt\": \"^3.16.2\",\n \"pinia\": \"^3.0.1\",\n \"vue\": \"^3.5.13\",\n \"vue-router\": \"^4.5.0\"\n },\n \"devDependencies\": {\n \"@antfu/eslint-config\": \"^4.11.0\",\n \"@element-plus/nuxt\": \"^1.1.1\",\n \"element-plus\": \"^2.9.7\",\n \"eslint\": \"^9.24.0\",\n \"sass\": \"^1.86.3\",\n \"sass-embedded\": \"^1.86.3\",\n \"typescript\": \"^5.8.3\"\n }\n\n### Reproduction\n\n低版本没有这个问题,打印值,服务端一次,客户端一次\n\n\n此次版本:\n\"nuxt\": \"^3.16.2\",\n\"@nuxtjs/i18n\": \"^9.5.3\",\n\n\n目录结构:根目录下 i18n -> locales -> locale.ts\nnuxt.config.ts文件\n\nmodules: [\n '@element-plus/nuxt',\n '@nuxtjs/i18n',\n ],\n i18n: {\n /* 较新版本的 @nuxtjs/i18n 模块中出现警告, 特别是与nuxt3.16.x一起使用 \n * bundle.optimizeTranslationDirective is enabled by default, we recommend disabling this feature as it causes issues and will be deprecated in v10.\n * bundle.optimizeTranslationDirective 功能在未来的 v10 版本中将被弃用,并且开发团队建议禁用它,因为它可能导致问题。\n * 明确设置此选项后,警告会消失,并且应用程序将更好地适应未来的 i18n 模块更新。\n * 如添加之后,警告未消失 1. 比对版本是否兼容 2. 缓存问题,nuxt使用了旧的缓存配置 npx nuxi cleanup\n */\n bundle: {\n optimizeTranslationDirective: false // 明确禁用此功能\n },\n // Module Options\n strategy: 'no_prefix', // 不为路由添加区域前缀\n defaultLocale: 'en', // 默认语种\n detectBrowserLanguage: false, // 禁用浏览器语言检测功能\n lazy: true,\n locales: [\n {\n code: 'en',\n file: 'locale.ts',\n },\n ],\n compilation: {\n strictMessage: false, // 允许message中包含html\n },\n },\n\n### Describe the bug\n\nexport default defineI18nLocale(async (locale) => {\n console.log(locale)\n})\n打印出来,打印了4次,服务端2次,客户端2次\n \n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\n\n```",[3270],{"name":3224,"color":3225},3538,"defineI18nLocale Repeated call problem, Server twice, client twice","2025-06-29T18:38:45Z","https://github.com/nuxt-modules/i18n/issues/3538",0.7468487,{"description":3277,"labels":3278,"number":3279,"owner":3180,"repository":3181,"state":3251,"title":3280,"updated_at":3281,"url":3282,"score":3283},"With [vue-i18n v10 soon entering its maintenance/hotfix-only status](https://vue-i18n.intlify.dev/guide/maintenance.html), and vue-i18n v12 entering alpha, we have some catching up to do.\n\nUpdating vue-i18n to its next major means breaking changes, albeit small ones in vue-i18n v11. We will take this as an opportunity to make some breaking changes in the form of cleanup and reorganization of config options.\n\nFeel free to suggest any changes and please let me know if some change needs reconsidering.\n\n- [x] Drop CJS, go ESM only\n- [x] Raise minimum Node version to v20\n- [x] Split up v9 (and earlier) documentation, see if we can move it to v9.i18n.nuxtjs.org\n- [ ] ~~Move `typescript` to `devDependencies` - this should cause no issues after updating `@intlify/unplugin-vue-i18n` but needs to be tested.~~ requires release, may not be possible since next release will be vue-i18n v12 compatible\n- [x] Update to Vue I18n v11 (see [breaking changes](https://vue-i18n.intlify.dev/guide/migration/breaking11.html))\n - [x] #3526 \n\u003C!-- - [ ] Stop support for path arguments for localized path resolution (e.g. `localePath('/')`, `localePath('/path?query=123')`) -->\n\u003C!-- - [ ] Warn if unsupported usage is detected - -->\n\u003C!-- - [ ] -->\n- [x] Remove migration ease for `restructureDir` - require a directory name (keep default value `'i18n'`)\n- [x] Drop `bundle.optimizeTranslationDirective` (#3238)\n- [x] Drop `experimental.generatedLocaleFilePathFormat` (we use hashed virtual files now)\n- [x] Strip `file`/`files` properties from `i18n.options.mjs` generated file\n- [x] Remove deprecated functionality\n - [x] Drop `$resolveRoute()`\n - [x] Drop `$localeLocation()`\n - [x] Drop `useLocaleLocation`\n- [x] Deprecate (remove in v11)\n - [x] `$localeHead` - reason: use-case unclear, `useLocaleHead` is more flexible and easier to maintain\n - [x] `$getRouteBaseName` - rename to `$routeBaseName` to be consistent with `useRouteBaseName` (still under consideration)\n- [x] Promoting experimental options\n - [x] `experimental.switchLocalePathLinkSSR` - enable by default\n - [x] `experimental.hmr` - move to `hmr`\n - [x] `experimental.autoImportTranslationFunctions` - enable by default, move out of experimental (where?)\n - [x] `experimental.alternateLinkCanonicalQueries` - enable by default, consider deprecating (dropping in v11)\n\n\u003C!-- - [ ] Consider replacing/migrating `defineI18nRoute` with/to `definePageMeta({ ... })` -->\n\u003C!-- - [ ] Move i18n routing options to `routing` key?\n - [ ] `trailingSlash` to `routing.trailingSlash` (consider dropping altogether)\n - [ ] `routesNameSeparator` to `routing.routesNameSeparator`\n - [ ] `defaultLocaleRouteNameSuffix` to `routing.defaultLocaleRouteNameSuffix` -->\n",[],3435,"Roadmap to v10.0.0","2025-07-04T17:37:26Z","https://github.com/nuxt-modules/i18n/issues/3435",0.747481,["Reactive",3285],{},["Set"],["ShallowReactive",3288],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fRigdUM3Kg2vKcB-KCUN2_Jy_bfjU_G3hOQoBOA51ClY":-1},"/nuxt-modules/i18n/3720"]