Runtime config

Some options can be set via the runtimeConfig, setting options this way makes it possible to override these after building using environment variables.


Usage

If you want to use environment variables to change supported options, you will have to set these in runtimeConfig.public.i18n.

nuxt.config.ts
export default defineNuxtConfig({
  modules: [
    '@nuxtjs/i18n'
  ],
  i18n: {
    // Leave options unset that you want to set using `runtimeConfig`
    // baseUrl: 'https://example.com',
    // experimental: {
    //   jsTsFormatResource: true,
    // },
  },
  runtimeConfig: {
    public: {
      i18n: {
        baseUrl: 'https://example.com',
        experimental: {
          jsTsFormatResource: true,
        },
        locales: {},
        // other options ...
      }
    }
  }
})

You can read more about how this works in the Nuxt documentation.

Only serializable values are supported in runtimeConfig, options set this way may not support all available types (such as functions) as would normally be possible using the default configuration.
If you would like other options to be supported, open an issue describing your use case, or open a PR adding to add support yourself!

Supported options

The module configuration takes precedence, options set through runtimeConfig will only be used if they are unset.

These options can be set using runtimeConfig:

baseUrl

  • key: NUXT_PUBLIC_I18N_BASE_URL

This runtime config option is the same as the baseUrl module option.

Note that the baseUrl module option allows you to set the function, but the runtime config does not due to limitations.

experimental

  • property: experimental.jsTsFormatResource
  • key: NUXT_PUBLIC_I18N_EXPERIMENTAL_JS_TS_FORMAT_RESOURCE

This runtime config option is the same as the experimental module option.

locales

  • property: locales[code].domain
  • key: NUXT_PUBLIC_I18N_LOCALES_{code}_DOMAIN

This runtime config option allows overriding the domain set in the locales module option.