\n\nWith the new type layout, the type resolves to `@nuxtjs/i18n/dist/module.d.mts`:\n\n\u003Cimg width=\"983\" height=\"247\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/953bab0d-12a9-4001-aab0-68a59b7eca08\" />\n\nOr:\n\n```ts\ninterface ModulePublicRuntimeConfig {\n i18n: I18nPublicRuntimeConfig;\n}\n```\n\nMy guess is that the code should be this instead:\n\n```ts\ninterface ModulePublicRuntimeConfig {\n i18n: Partial\u003CI18nPublicRuntimeConfig>;\n}\n```\n\nAlternatively, all keys on `I18nPublicRuntimeConfig` could get a suffix `?` to mark them key-optional.\n\n### Additional context\n\nI added https://github.com/nuxt-modules/i18n/pull/3730 which includes the first solution given.\n\n### Logs\n\n```shell\n\n```",[3108],{"name":3021,"color":3022},3729,"fix(v10): `runtimeConfig` type in Nuxt 4","2025-07-17T08:39:49Z","https://github.com/nuxt-modules/i18n/issues/3729",0.7099854,{"description":3115,"labels":3116,"number":3123,"owner":3024,"repository":3025,"state":3057,"title":3124,"updated_at":3125,"url":3126,"score":3127},"### 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).",[3117,3120],{"name":3118,"color":3119},"feature request","ffbb00",{"name":3121,"color":3122},"scope: seo","30CDE0",2784,"Remove the auto-complete alternate langs","2025-05-25T10:23:03Z","https://github.com/nuxt-modules/i18n/issues/2784",0.7117408,["Reactive",3129],{},["Set"],["ShallowReactive",3132],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fmoiCDZld-f-0cOEaL3qMR0RTPATWPbeBalA6-ITv3KY":-1},"/nuxt-modules/i18n/3764"]