|\u003Cimg width=\"324\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/cd6f6927-33b3-4b85-a984-64c6cb1f53e5\" />|\n\n#### Proposed Feature: `localeDetector` Option\n\n##### Current Behavior Example\n\nTo illustrate the current behavior, consider the following scenario:\n\n* Accessing `/en/about` and `/ja/about` under the `no_prefix` strategy will not trigger locale detection based on the pathname.\n* As a result, both paths will use the language setting of the build machine during SSG, resulting in both paths potentially being generated in the same language.\n\nScreenshots and repository links demonstrating the current behavior will be provided to further clarify the issue.\n\nTo address this issue, I propose adding a new `localeDetector` option to the module configuration. This option allows specifying the methods for locale detection as follows:\n\n```typescript\ntype LocaleDetector = (\"pathname\" | \"domain\" | \"cookie\" | \"browser\")[];\n\nconst localeDetector: LocaleDetector = [\"pathname\", \"domain\", \"cookie\", \"browser\"];\n```\n\nIf `pathname` is specified, the locale will be automatically detected based on the URL pathname.\n\nThe default value of `localeDetector` will vary depending on the `strategy` value to maintain backward compatibility. For instance, when `no_prefix` is selected, the default value would be:\n\n```javascript\nlocaleDetector: [\"domain\", \"cookie\", \"browser\"]\n```\n\n##### Example Configuration for My Use Case:\n\n```javascript\nstrategy: \"no_prefix\",\nlocaleDetector: [\"pathname\", \"cookie\", \"browser\"]\n```\n\nThis configuration would resolve the issue by enabling locale detection based on pathname while maintaining backward compatibility with existing behavior.\n\nThank you for considering this feature request. I would be happy to provide further clarifications or contribute to the implementation if needed.\n\n\n### Additional information\n\n- [x] 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).",[2856],{"name":2857,"color":2858},"pending triage","c2e0c6",3609,"nuxt-modules","i18n","open","Add `localeDetector` option to customize locale detection during Vue component rendering","2025-05-16T18:51:35Z","https://github.com/nuxt-modules/i18n/issues/3609",0.71510375,{"description":2868,"labels":2869,"number":2871,"owner":2860,"repository":2861,"state":2862,"title":2872,"updated_at":2873,"url":2874,"score":2875},"### Environment\n\n- Operating System: Darwin\n- Node Version: v22.15.0\n- Nuxt Version: 3.17.3\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.12\n- Package Manager: npm@10.9.2\n- Builder: -\n- User Config: compatibilityDate, devtools, modules, i18n, nitro\n- Runtime Modules: @nuxt/content@3.5.1, @nuxtjs/i18n@9.5.4\n- Build Modules: -\n\n\n### Reproduction\n\nA minimal reproduction of this issue can be found in the following repository: https://github.com/odan-sandbox/nuxt-content-and-i18n-no_prefix-example\n\n\n### Describe the bug\n\nWhen using the `no_prefix` strategy in `nuxt-i18n`, the locale detection based on the URL pathname is not functioning as expected. This results in incorrect locale assignment during SSR/SSG.\n\nFor example, accessing `/en/about` and `/ja/about` should render the corresponding locale-specific content, but instead, both paths are rendered using the default or server locale, ignoring the locale information in the pathname.\n\nThis issue causes problems for multilingual documentation sites using `nuxt/content`, where the content is structured by locale (e.g., `docs/en/about.md`, `docs/ja/about.md`). During SSG, both paths may be generated with the same language content, leading to incorrect output.\n\nIf a PR to resolve this issue is considered appropriate, I would be willing to work on it.\n\n\n### Additional context\n\nRelated: https://github.com/nuxt-modules/i18n/issues/3609\n\n### Logs\n\n```shell\n\n```",[2870],{"name":2857,"color":2858},3619,"Locale detection not working with `no_prefix` strategy","2025-05-19T06:13:27Z","https://github.com/nuxt-modules/i18n/issues/3619",0.72695774,{"description":2877,"labels":2878,"number":2880,"owner":2860,"repository":2861,"state":2862,"title":2881,"updated_at":2882,"url":2883,"score":2884},"### Environment\n\n\nSuch as in the reproduction.\n\n\n\n### Reproduction\n\nhttps://stackblitz.com/edit/bobbiegoede-nuxt-i18n-starter-kvjaukgj?file=nuxt.config.ts\n\n### Describe the bug\n\nPreviously I was using an older version of the module, there 'npm generate' created an index.html with a redirect to the default language. \n`npx serve .output/public` now displays only folder structure. You can only enter manually by adding /en in the link.\n\nI couldn't find any information about this change in the documentation and on the nuxt help channel.\n\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\n\n```",[2879],{"name":2857,"color":2858},3624,"Missing generated index.html in root folder on “prefix” mode. SSG","2025-05-20T12:46:00Z","https://github.com/nuxt-modules/i18n/issues/3624",0.74541634,{"description":2886,"labels":2887,"number":2894,"owner":2860,"repository":2861,"state":2895,"title":2896,"updated_at":2897,"url":2898,"score":2899},"### Discussed in https://github.com/nuxt-modules/i18n/discussions/2958\r\n\r\n\u003Cdiv type='discussions-op-text'>\r\n\r\n\u003Csup>Originally posted by **silgon** May 26, 2024\u003C/sup>\r\nI'm trying to build a multi-domain website. However, I want part of the languages to be on one site. I would like something like the following:\r\n\r\n```typescript\r\nexport default defineNuxtConfig({\r\n // ...\r\n\r\n i18n: {\r\n locales: [\r\n {\r\n code: 'en-US',\r\n domain: 'mydomain.com'\r\n },\r\n {\r\n code: 'es-MX',\r\n domain: 'mydomain.com/es-MX'\r\n },\r\n {\r\n code: 'ch-DE',\r\n domain: 'another-domain.ch'.\r\n },\r\n {\r\n code: 'ch-FR',\r\n domain: 'another-domain.ch/ch-FR'\r\n },\r\n ],\r\n differentDomains: true\r\n // Or enable the option in production only\r\n // differentDomains: (process.env.NODE_ENV === 'production')\r\n },\r\n\r\n // ...\r\n})\r\n```\r\n\r\nI hope that it's clear what I want to do given the configuration. My guidelines where the following link https://v8.i18n.nuxtjs.org/guide/different-domains\r\n\r\nCould somebody give me some guidance? I'm not able to do what I want. (also some insights in the sitemap with that kind of configuration would be cool, but not sure if this is the right place)\r\n\r\nWhen I'm in the same domain, the language does not change (I use the href configuration as specified in the documentation)\u003C/div>",[2888,2891],{"name":2889,"color":2890},"need more info","e295d6",{"name":2892,"color":2893},"scope: domains","fbca04",2979,"closed","Multi-Domain Website configuration with partial shared domains","2025-05-24T22:26:46Z","https://github.com/nuxt-modules/i18n/issues/2979",0.63873553,{"description":2901,"labels":2902,"number":2910,"owner":2860,"repository":2861,"state":2895,"title":2911,"updated_at":2912,"url":2913,"score":2914},"### Describe the feature\n\nI am not sure if this is already possible, but I can not seem to figure it out.\r\nFor my site I am using differentDomains: true\r\nFor SEO purposes, I would like the baseURL to change whenever I switch local (or domain) which it does not seem to be doing right now.\r\nI am using the SEO module and for that to work properly I need to set up [the site config](https://nuxtseo.com/site-config/integrations/i18n).\r\n\r\nThe site link will be automatically set to the baseURL of the i18n module.\r\n\r\nI am also not sure if this is i18n module or seo module issue.\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).",[2903,2906,2907],{"name":2904,"color":2905},"feature request","ffbb00",{"name":2889,"color":2890},{"name":2908,"color":2909},"need reproduction","CD234A",3053,"Change BaseURL when using different domains","2025-06-03T21:57:39Z","https://github.com/nuxt-modules/i18n/issues/3053",0.64866143,{"description":2916,"labels":2917,"number":2928,"owner":2860,"repository":2861,"state":2895,"title":2929,"updated_at":2930,"url":2931,"score":2932},"### Environment\n\n- Operating System: `Darwin`\n- Node Version: `v20.9.0`\n- Nuxt Version: `3.14.159`\n- CLI Version: `3.15.0`\n- Nitro Version: `2.10.4`\n- Package Manager: `pnpm@9.9.0`\n- Builder: `-`\n- User Config: `default`\n- Runtime Modules: `@nuxtjs/i18n@9.0.0`\n- Build Modules: `-`\n\n\n### Reproduction\n\nhttps://github.com/cernymatej/i18n-domain-routes\n\n### Describe the bug\n\nWhen a project uses different domains to separate localizations and the routes are translated using `defineI18nRoute()`, the routes from other locales are available in every locale as well.\nFor example, let's say I have route `/about` available on `foo.com` and `/o-nas` on `foo.sk`. When I go to `foo.sk/about`, it will still work.\n```ts\ndefineI18nRoute({\n paths: {\n en: '/about',\n sk: '/o-nas'\n }\n})\n```\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\n\n```",[2918,2921,2922,2925],{"name":2919,"color":2920},"bug 🐛","ee0701",{"name":2908,"color":2909},{"name":2923,"color":2924},"scope: language detection","1B89B8",{"name":2926,"color":2927},"scope: routing","21CD73",3226,"Routes from different domains are mixed","2025-06-03T21:56:26Z","https://github.com/nuxt-modules/i18n/issues/3226",0.6921041,{"description":2934,"labels":2935,"number":2941,"owner":2860,"repository":2861,"state":2895,"title":2942,"updated_at":2943,"url":2944,"score":2945},"### Environment\n\n- Node Version: v20.11.0\r\n- Nuxt Version: 3.10.1\r\n- CLI Version: 3.10.0\r\n- Nitro Version: 2.8.1\r\n- Package Manager: yarn@4.0.1\r\n- Builder: -\r\n- User Config: modules, i18n, devtools\r\n- Runtime Modules: @nuxtjs/i18n@8.1.0\r\n- Build Modules: -\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-c7te5q-s3x21p?file=app.vue\n\n### Describe the bug\n\nAlso if i've set \r\n```js\r\nsetI18nParams({\r\n it: { blog: 'blog-1-it' },\r\n de: { blog: 'blog-1-de' },\r\n en: { blog: undefined },\r\n})\r\n```\r\n\r\nthe `og:locale:alternate` for the `en` lang it was addes\r\n\r\n```html\r\n\u003Cmeta id=\"i18n-og-alt-en\" property=\"og:locale:alternate\" content=\"en\">\r\n```\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[2936,2938],{"name":2937,"color":2893},"🔨 p3-minor-bug",{"name":2939,"color":2940},"scope: seo","30CDE0",2782,"Allow disabling page per locale with `useSetI18nParams`","2025-05-25T10:23:04Z","https://github.com/nuxt-modules/i18n/issues/2782",0.71745175,{"description":2947,"labels":2948,"number":2952,"owner":2860,"repository":2861,"state":2895,"title":2953,"updated_at":2954,"url":2955,"score":2956},"### Environment\n\n- Operating System: `Darwin`\n- Node Version: `v22.15.0`\n- Nuxt Version: `3.17.4`\n- CLI Version: `3.25.1`\n- Nitro Version: `2.11.12`\n- Package Manager: `npm@10.9.2`\n- Builder: `-`\n- User Config: `devtools`, `modules`, `i18n`, `compatibilityDate`, `app`\n- Runtime Modules: `@nuxtjs/i18n@9.5.4`\n- Build Modules: `-`\n\n\n### Reproduction\n\nhttps://github.com/cjpearson/switch-locale-path-repro\n\n### Describe the bug\n\nWhen using different domains for each locale, `switchLocalePath` will return an absolute URL for the current route in a different locale. However, if `app.baseURL` will not be included if it is set.\n\nFor example, calling `switchLocalePath` on `http://en.localhost/prefix/testing` will return `http://nl.localhost/testing`.\n\nThis is also the case when using path prefixes instead of domains, but less of an issue in practice since NuxtLink automatically adds the baseURL.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell\n\n```",[2949,2950],{"name":2919,"color":2920},{"name":2951,"color":2893},"domain",3628,"`switchLocalePath` should include the baseURL","2025-05-22T15:50:22Z","https://github.com/nuxt-modules/i18n/issues/3628",0.7320156,{"description":2958,"labels":2959,"number":2962,"owner":2860,"repository":2861,"state":2895,"title":2963,"updated_at":2964,"url":2965,"score":2966},"### Describe the feature\n\nHi! I've a website with the following langs `it`, `de`, `en` and all the path in the translated lang have it's own path\r\n`/it/come-funziona`\r\n`/de/produkt`\r\n`/en/how-it-works`\r\n\r\nok, that's easy, I have de following config:\r\n```js\r\ndefineI18nRoute({\r\n locales: ['it', 'de', 'en'],\r\n\r\n paths: {\r\n it: '/come-funziona',\r\n de: '/produkt',\r\n en: '/how-it-works'\r\n }\r\n})\r\n```\r\n\r\nAnd if I have one less lang for a path it's something like: \r\n```js\r\ndefineI18nRoute({\r\n locales: ['it', 'en'],\r\n\r\n paths: {\r\n it: '/partner',\r\n en: '/partner'\r\n }\r\n})\r\n```\r\nOk, now the problem appear with dynamic pages. Because in the \"blog\" section not all articles are translated in all lang\r\n```js\r\ndefineI18nRoute({\r\n locales: ['it', 'en', 'de'],\r\n\r\n paths: {\r\n it: '/[blog]',\r\n en: '/[blog]',\r\n de: '/[blog]'\r\n }\r\n})\r\n\r\n// this specific article is not translated in `en`\r\nsetI18nParams({\r\n it: { blog: 'blog-1-it' },\r\n de: { blog: 'blog-1-de' },\r\n})\r\n```\r\n\r\nSo why is the following path added by default `/en/blog-1-it`? I think this behavior is similar to a bug. I don't want that to ever happen. Not even on non-dynamic pages\r\nI prefer something like\r\n```js\r\ndefineI18nRoute({\r\n paths: {\r\n it: '/partner',\r\n en: '/partner'\r\n }\r\n})\r\n```\r\nwithout having to specify the list of languages.\r\n\r\nBy default i have 3 langs, yes. And lang switcher always show 3 langs but if I don't set one it means that it doesn't exist, it makes no sense that only the `/en` prefix is changed and a route that doesn't exist is created.\r\nThis compromises the entire management of `rel=alternate` and SEO.\r\n\r\nI kindly ask you to give an answer to this question and look for a solution together because I think that the use of i18n is really complex if brought back to real management situations with a CMS.\r\nAfter almost a year of use there are still many problems related to SEO, changing languages, creating sitemaps, dynamic pages, etc.\r\n\r\nThank you very much\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).",[2960,2961],{"name":2904,"color":2905},{"name":2939,"color":2940},2784,"Remove the auto-complete alternate langs","2025-05-25T10:23:03Z","https://github.com/nuxt-modules/i18n/issues/2784",0.73398894,{"description":2968,"labels":2969,"number":2971,"owner":2860,"repository":2861,"state":2895,"title":2972,"updated_at":2973,"url":2974,"score":2975},"### Environment\n\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v20.14.0\r\n- Nuxt Version: 3.12.4\r\n- CLI Version: 3.12.0\r\n- Nitro Version: 2.9.7\r\n- Package Manager: yarn@1.22.22\r\n- Builder: -\r\n- User Config: ssr, compatibilityDate, devtools, modules, components, runtimeConfig, site, ogImage, i18n, tailwindcss, sitemap, content, gtag, cookieControl\r\n- Runtime Modules: @nuxtjs/i18n@8.3.3, @nuxtjs/tailwindcss@6.12.1, @nuxtjs/seo@2.0.0-rc.16, @nuxt/content@2.13.2, @nuxthq/studio@2.0.3, nuxt-gtag@2.1.0, @dargmuesli/nuxt-cookie-control@8.4.7\r\n- Build Modules: -\r\n------------------------------\n\n### Reproduction\n\nwww.vinoteqa.com/blog\n\n### Describe the bug\n\nWhen I try to visit a page, other than the root, I get redirected to the localized url but still get a error. As soon as I reload the page, it is displayed correctly. \r\n\r\nTry it at: www.vinoteqa.com/blog\r\n\r\nAm I missing some configuration?\n\n### Additional context\n\n```ts\r\n i18n: {\r\n defaultLocale: 'en',\r\n locales: [{\r\n code: 'en',\r\n iso: 'en',\r\n name: 'English',\r\n file: 'en.json',\r\n },\r\n {\r\n code: 'de',\r\n iso: 'de',\r\n name: 'Deutsch',\r\n file: 'de.json',\r\n },\r\n {\r\n code: 'it', \r\n iso: 'it',\r\n name: 'Italiano',\r\n file: 'it.json',\r\n }],\r\n strategy: 'prefix',\r\n lazy: false,\r\n langDir: 'locales/',\r\n },\r\n ```\r\n \r\n \n\n### Logs\n\n_No response_",[2970],{"name":2857,"color":2858},3062,"404 on all pages other than root with `prefix` strategy","2025-05-21T19:36:56Z","https://github.com/nuxt-modules/i18n/issues/3062",0.7357836,["Reactive",2977],{},["Set"],["ShallowReactive",2980],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fNV2gaXQL36cEN0Vjw8wKgDlqusF2HIkJzke-Rt7iamc":-1},"/nuxt-modules/i18n/3635"]