nuxt-modules / i18n

I18n module for Nuxt
https://i18n.nuxtjs.org
MIT License
1.71k stars 478 forks source link

Access to i18n config in nitro context #3032

Open warflash opened 2 months ago

warflash commented 2 months ago

Describe the feature

It'd be nice to get access to the very basics of the i18n config in nitro. Just to give a simple example, we're trying to verify a language passed in query params is actually supported by our website. Or load/return data for every possible locale.

There's of course the option to hardcode/copy it, however I think it'd be preferable to be able to pull i18n related configs straight from the source - similar to what useI18n().locales provides.

Additional information

Final checks

AndersCV commented 1 month ago

@warflash I had a similar use case where i needed to validate a local based on a query paramter in a server route. I hacked a workaround that is placing my i18n config in a seperate file and attaching it to my runtimeConfig

// nuxt.config.ts 
export default defineNuxtConfig({
  runtimeConfig: {
    i18n: require('./nuxt.i18n.config'),
  },
})

In order to get typescript working:

// index.d.ts
import { NuxtI18nOptions } from '@nuxtjs/i18n'

declare module '@nuxt/schema' {
  interface RuntimeConfig {
    i18n: NuxtI18nOptions
  }
}

Now no copying is needed - but I also think it would be great if the module could handle this!