Cached version (swr, ssg...) is saved with one locale only
Environment
- Operating System: Linux
- Node Version: v20.9.0
- Nuxt Version: 3.10.3
- CLI Version: 3.10.1
- Nitro Version: 2.9.3
- Package Manager: [email protected]
- Builder: -
- User Config: devtools, alias, ssr, runtimeConfig, modules, carousel, vite, gtag, vitest, i18n, imports, routeRules, app, router
- Runtime Modules: @nuxtjs/[email protected], @pinia/[email protected], @pinia-plugin-persistedstate/[email protected], @nuxtjs/[email protected], @nuxtjs/[email protected], [email protected], [email protected], @vueuse/[email protected], @formkit/auto-animate/[email protected], [email protected], [email protected], [email protected], @nuxt/test-utils/[email protected], [email protected]
Reproduction
Set this config in you nuxt.config.ts to reproduce the mistake :
i18n: {
compilation: {
strictMessage: false
},
locales: [
{
code: "es-ES",
file: "es-ES.ts",
domain: "mydomain.es",
iso: "es-ES"
},
{
code: "fr-FR",
file: "fr-FR.ts",
domain: "mydomain.fr",
iso: "fr-FR"
}
],
detectBrowserLanguage: false,
differentDomains: true,
defaultLocale: "fr-FR",
lazy: true,
langDir: "./locales",
vueI18n: "./i18n.config.ts" // if you are using custom path, default
},
routeRules: {
"/": { swr: 3600 }
Describe the bug
Hello, I have a page (my index page) which I want to cache with swr settings (swr: 3600 in routeRoules, see my config). But here is the problem : we have different domains for each language on our website and it appears the cached page is only saved with the default locale (fr-FR), not all the locales we set in our nuxt.config! So when we load the page with a different locale, the i18n stuff is active only on the client side (we can see the other language for a second before the i18n do translations) and the v-if blocks are not properly working (for instance, if we have a "v-if="i18n.locale === 'fr'" and display the page from the spanish domain, that's doesn't work, we see the wrong block).
Additional context
No response
Logs
No response
Would you be able to provide a reproduction? 🙏
More info
Why do I need to provide a reproduction?
Reproductions make it possible for us to triage and fix issues quickly with a relatively small team. It helps us discover the source of the problem, and also can reveal assumptions you or we might be making.
What will happen?
If you've provided a reproduction, we'll remove the label and try to reproduce the issue. If we can, we'll mark it as a bug and prioritise it based on its severity and how many people we think it might affect.
If needs reproduction labeled issues don't receive any substantial activity (e.g., new comments featuring a reproduction link), we'll close them. That's not because we don't care! At any point, feel free to comment with a reproduction and we'll reopen it.
How can I create a reproduction?
We have a couple of templates for starting with a minimal reproduction:
👉 Reproduction starter (v8 and higher) 👉 Reproduction starter (edge)
A public GitHub repository is also perfect. 👌
Please ensure that the reproduction is as minimal as possible. See more details in our guide.
You might also find these other articles interesting and/or helpful:
Closing due to inactivity. Please open a new issue with a reference to this one if you can follow up with more information.
Thanks!