The vue-i18n patch is to keep translation keys stricter so that the IDE would detect you a typo.
BUT it must generate types, and @nuxtjs/i18n does that only in dev mode:
async function prepareTypeGeneration({ resolver, options }, nuxt) {
if (options.experimental.typedOptionsAndMessages === false || !nuxt.options.dev) {
return;
}
// ...So instead of enabling the option to rely on the module for generation, merge the vue-i18n's DefineLocaleMessage type with the MessageSchema generated in i18n.config.ts file, and no generation is needed.