\n\nThe schedule page has nested \"child\" routes, which are displayed as \"tabs\" using `\u003CNuxtChild />`.\n\n\u003Cimg width=\"1288\" height=\"664\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/3f1a9bac-7094-4cd6-b5a8-3b6f8d26069f\" />\n\nWhen I visit the schedule route, I want to redirected to `schedule/[day].vue`, with \"day\" param set as \"1\", which would display the schedule for the first day of the event `/en/schedule/1`.\n\nI had to create a custom middleware because it was not supported.\n```js\n// schedule.vue\n\ndefinePageMeta({\n localeRedirect: {\n name: 'schedule-day',\n params: { day: 1 },\n },\n i18n: {\n paths: {\n fr: '/programmation',\n en: '/schedule',\n },\n },\n});\n```\n\n```js\n// localeRedirect.global.ts\n\nexport default defineNuxtRouteMiddleware((to) => {\n const localePath = useLocalePath();\n if (to.meta.localeRedirect && to.matched.length === 1 && !to.redirectedFrom) {\n return navigateTo(localePath(to.meta.localeRedirect));\n }\n});\n```\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).",[3235],{"name":3173,"color":3174},3801,"Add i18n support to `redirect` inside `definePageMeta`","2025-08-31T09:50:36Z","https://github.com/nuxt-modules/i18n/issues/3801",0.7011449,{"description":3242,"labels":3243,"number":3250,"owner":3176,"repository":3177,"state":3251,"title":3252,"updated_at":3253,"url":3254,"score":3255},"### Environment\n\n- Operating System: Windows 11\n- Node Version: 18.18.2\n- Nuxt Version: 3.15.0\n- @nuxtjs/i18n: 9.5.3\n\n### Reproduction\n\nhttps://stackblitz.com/edit/bobbiegoede-nuxt-i18n-starter-7rohnkcc?file=nuxt.config.ts\n\n### Describe the bug\n\nI am using the following configuration:\n\n```\ni18n: {\n locales: [ ... ],\n strategy: 'prefix_except_default',\n langDir: 'lang',\n lazy: true,\n defaultLocale: 'en',\n detectBrowserLanguage: {\n useCookie: true,\n cookieKey: 'i18n_redirected',\n fallbackLocale: 'en',\n redirectOn: 'no prefix',\n alwaysRedirect: true,\n }\n}\n```\n\nExpected:\nA Japanese user is on the link `https://www.xxx.com/ja/about`, now opening the following links should result in the following redirection behavior:\n`https://www.xxx.com/nl/about` → `https://www.xxx.com/nl/about`\n`https://www.xxx.com/about` → `https://www.xxx.com/ja/about`\n`https://www.xxx.com` → `https://www.xxx.com/ja`\n\nThis also matches the documentation:\n`'no prefix' - a more permissive variant of 'root' that will detect the browser locale on the root path ('/') and also on paths that have no locale prefix (like '/foo'). Only effective when using strategy other than 'no_prefix'.`\n\nActual behavior (only listing the problematic case):\n`https://www.xxx.com/nl/about` → `https://www.xxx.com/ja/about`\n\nThe above issue exists in versions v7, v8, and v9.\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\n\n```",[3244,3247],{"name":3245,"color":3246},"scope: language detection","1B89B8",{"name":3248,"color":3249},"possible regression","B78041",3545,"closed","The behavior of redirectOn set to 'no prefix' from version 7 to version 9 is inconsistent with the documentation.","2025-06-22T23:03:38Z","https://github.com/nuxt-modules/i18n/issues/3545",0.64233863,{"description":3257,"labels":3258,"number":3260,"owner":3176,"repository":3177,"state":3251,"title":3261,"updated_at":3262,"url":3263,"score":3264},"### Environment\n\n- Operating System: Linux\r\n- Node Version: v18.20.3\r\n- Nuxt Version: 3.12.4\r\n- CLI Version: 3.12.0\r\n- Nitro Version: -\r\n- Package Manager: pnpm@8.15.6\r\n- Builder: -\r\n- User Config: modules, runtimeConfig, i18n, compatibilityDate\r\n- Runtime Modules: @nuxtjs/i18n@8.3.1\r\n- Build Modules: -\n\n### Reproduction\n\nhttps://stackblitz.com/edit/nuxt-starter-i18n-timothe?file=app.vue,pages/%5B...slug%5D.vue,nuxt.config.ts\n\n### Describe the bug\n\nWhen using `prefix_except_default` strategy, and try to initialize locale with setLocale function but I18n fallback to default locale afterward. It's only work when I set detectBrowserLanguage to `{}` instead of `false`.\n\n### Additional context\n\nI let the CMS handle the routing for the wildcard.\n\n### Logs\n\n```shell\nisSSG false\r\nuseCookie on setup false\r\ndefaultLocale on setup fr\r\ngetLocaleCookie { useCookie: false, cookieKey: false, localeCodes: [ 'fr', 'en' ] }\r\ndetectLocale: initialLocale - fr\r\ndetectLocale: (ssg, callType, firstAccess) - normal setup true\r\ndetectLocale: detectBrowserLanguage (browserLocale, stat, reason, from) - false unknown unknown\r\ndetectLocale: finaleLocale first (finaleLocale, strategy) - prefix_except_default\r\ndetectLocale: finaleLocale second (finaleLocale, detectBrowserLanguage) - false\r\ndetectLocale: finalLocale last (finalLocale, defaultLocale) - fr\r\ndetectLocale: finalLocale - fr\r\nfirst detect initial locale fr\r\n../assets/fr.json is loading ...\r\nloadMessage: (locale) - fr\r\nloadMessage: load { welcome:\r\n { type: 0,\r\n start: 0,\r\n end: 9,\r\n loc: { start: [Object], end: [Object], source: 'Bienvenue' },\r\n body:\r\n { type: 2, start: 0, end: 9, loc: [Object], items: [Array], static: 'Bienvenue' } } }\r\nfinal initial locale: fr\r\nlocale-changing middleware { fullPath: '/',\r\n hash: '',\r\n query: {},\r\n name: 'slug',\r\n path: '/',\r\n params: { slug: '' },\r\n matched:\r\n [ { path: '/:slug(.*)*',\r\n redirect: undefined,\r\n name: 'slug',\r\n meta: {},\r\n aliasOf: undefined,\r\n beforeEnter: undefined,\r\n props: [Object],\r\n children: [],\r\n instances: {},\r\n leaveGuards: Set(0) {},\r\n updateGuards: Set(0) {},\r\n enterCallbacks: {},\r\n components: [Object] } ],\r\n meta: {},\r\n redirectedFrom: undefined,\r\n href: '/' } { fullPath: '/',\r\n path: '/',\r\n query: {},\r\n hash: '',\r\n name: undefined,\r\n params: { slug: '' },\r\n matched:\r\n [ { path: '/:slug(.*)*',\r\n redirect: undefined,\r\n name: 'slug',\r\n meta: {},\r\n aliasOf: undefined,\r\n beforeEnter: undefined,\r\n props: [Object],\r\n children: [],\r\n instances: {},\r\n leaveGuards: Set(0) {},\r\n updateGuards: Set(0) {},\r\n enterCallbacks: {},\r\n components: [Object] } ],\r\n meta: {},\r\n redirectedFrom: undefined,\r\n href: '/' }\r\ngetLocaleCookie { useCookie: false, cookieKey: false, localeCodes: [ 'fr', 'en' ] }\r\ndetectLocale: initialLocale - fr\r\ndetectLocale: (ssg, callType, firstAccess) - normal routing true\r\ndetectLocale: detectBrowserLanguage (browserLocale, stat, reason, from) - false unknown unknown\r\ndetectLocale: finaleLocale first (finaleLocale, strategy) - prefix_except_default\r\ndetectLocale: finaleLocale second (finaleLocale, detectBrowserLanguage) - false\r\ndetectLocale: finalLocale last (finalLocale, defaultLocale) - fr\r\ndetectLocale: finalLocale - fr\r\ndetect locale fr\r\nlocaleSetup false\r\nsetLocale: new -> fr old -> fr initial -> false\r\ndetectRedirect: targetLocale -> fr\r\ndetectRedirect: route -> { to:\r\n { fullPath: '/',\r\n hash: '',\r\n query: {},\r\n name: 'slug',\r\n path: '/',\r\n params: { slug: '' },\r\n matched: [ [Object] ],\r\n meta: {},\r\n redirectedFrom: undefined,\r\n href: '/' },\r\n from:\r\n { fullPath: '/',\r\n path: '/',\r\n query: {},\r\n hash: '',\r\n name: undefined,\r\n params: { slug: '' },\r\n matched: [ [Object] ],\r\n meta: {},\r\n redirectedFrom: undefined,\r\n href: '/' } }\r\ndetectRedirect: calledWithRouting -> true \r\ndetectRedirect: calculate routePath -> /\r\nredirectPath on locale-changing middleware \r\nnavigate options 302 false false false\r\nnavigate isSSG false\r\nsetLocale: new -> en old -> fr initial -> true\r\n../assets/en.json is loading ...\r\nloadMessage: (locale) - en\r\nloadMessage: load { welcome:\r\n { type: 0,\r\n start: 0,\r\n end: 7,\r\n loc: { start: [Object], end: [Object], source: 'Welcome' },\r\n body: { type: 2, start: 0, end: 7, loc: [Object], items: [Array], static: 'Welcome' } } }\r\ndetectRedirect: targetLocale -> en\r\ndetectRedirect: route -> { to: {} }\r\ndetectRedirect: calledWithRouting -> false \r\ndetectRedirect: calculate routePath -> /\r\nredirectPath on setLocale \r\nnavigate options 302 false false true\r\nnavigate isSSG false\n```\n",[3259],{"name":3245,"color":3246},3039,"DetectBrowserLanguage rollback to default locale when using `prefix_except_default`","2025-06-08T01:03:16Z","https://github.com/nuxt-modules/i18n/issues/3039",0.649262,{"description":3266,"labels":3267,"number":3272,"owner":3176,"repository":3177,"state":3251,"title":3273,"updated_at":3274,"url":3275,"score":3276},"### Environment\n\n------------------------------\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: npm@10.8.2\n- Builder: -\n- User Config: modules, devtools, nitro, i18n\n- Runtime Modules: @nuxtjs/i18n@9.5.5-29143926.54460af\n- Build Modules: -\n------------------------------\n\n### Reproduction\n\nhttps://stackblitz.com/edit/bobbiegoede-nuxt-i18n-starter-b5evupp3?file=nuxt.config.ts\n\n### Describe the bug\n\nWhen the site is generated or pre-rendered in `strategy: 'prefix'`, Browser language detection is not performed but the site always lands on the `defaultLocale` (`ja` in this case).\nThis is a bug present in both `V9` and `V10` and it would be nice to be fixed before the final release.\n\nCurrently the only solution I have found is to specify not to pre-render the `/` page and to start from the others (by the way it is not correct that this page is prerendered in `strategy: 'prefix'`):\n```js \n routeRules: {\n '/': {\n prerender: false,\n },\n '/ja': {\n prerender: true,\n },\n '/it': {\n prerender: true,\n },\n '/en': {\n prerender: true,\n },\n },\n```\n\n### Additional context\n\nI noticed this error when deploying to Netlify, but you can reproduce it with\n`nuxt build`\n`nuxt preview`\n\n### Logs\n\n```shell\n\n```",[3268,3271],{"name":3269,"color":3270},"scope: ssg","85eac7",{"name":3245,"color":3246},3678,"Browser language detection on prerendering with `strategy: 'prefix'`","2025-07-29T10:29:39Z","https://github.com/nuxt-modules/i18n/issues/3678",0.6593769,{"description":3278,"labels":3279,"number":3281,"owner":3176,"repository":3177,"state":3251,"title":3282,"updated_at":3283,"url":3284,"score":3285},"### Environment\n\n------------------------------\n- Operating System: Linux\n- Node Version: v22.14.0\n- Nuxt Version: 3.17.2\n- CLI Version: 3.25.0\n- Nitro Version: 2.11.7\n- Package Manager: pnpm@10.6.5\n- Builder: -\n- User Config: -\n- Runtime Modules: -\n- Build Modules: -\n------------------------------\n\n### Reproduction\n\nI made a fork and modified the playground a bit. Start the playground and go to the `/jatest` page. You will see 404 screen, even though the page exists.\n\nhttps://github.com/MellKam/i18n/tree/v9\n\n### Describe the bug\n\nConsider the following config:\n\n```ts\nexport default defineNuxtConfig({\n modules: ['@nuxtjs/i18n'],\n i18n: {\n strategy: 'prefix_except_default',\n multiDomainLocales: true,\n locales: [\n {\n code: 'en',\n language: 'en-US',\n file: 'en.json',\n name: 'English',\n domains: ['localhost:3000']\n },\n {\n code: 'ja',\n language: 'ja-JP',\n file: 'ja.json',\n name: 'Japanese',\n domains: ['localhost:3000'],\n defaultForDomains: ['localhost:3000']\n }\n ]\n },\n compatibilityDate: '2025-02-04'\n})\n```\n\nThe default locale for domain localhost:3000 would be `ja`. The selected strategy is `prefix_except_default`, so prefix `ja` should be removed from path. \n\nBut let's consider the page path that looks like this: `/jatest`. When we try to go to this page we don't want the prefix to be removed as it's the part of the path and not the prefix of locale. But in `9.5.6` we would actually get 404 with message `Page /test not found`",[3280],{"name":3173,"color":3174},3715,"[v9] Default locale prefix incorrectly removed from route paths that start with locale substring (e.g. /jatest becomes /test)","2025-07-20T20:13:46Z","https://github.com/nuxt-modules/i18n/issues/3715",0.6655509,["Reactive",3287],{},["Set"],["ShallowReactive",3290],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fIqkmEJQIk8KyLB6kAsaL4vJ6icSOojSwTy_KAgBihDA":-1},"/nuxt-modules/i18n/3609"]