Search code examples
nestjsi18nextnestjs-i18n

Error: Configuration key FALLBACK_LANGUAGE does not exist in nextjs


I am working on nestjs-i18n for internalization and getting this error.

Error:

{"message":"[App] Configuration key \"FALLBACK_LANGUAGE\" does not exist"}

This is my app.module.ts:

import { Module } from '@nestjs/common'
import { ConfigService as NestConfig } from '@nestjs/config'
import * as path from 'path';
import { I18nModule, AcceptLanguageResolver, QueryResolver, HeaderResolver } from 'nestjs-i18n';

@Module({
  imports: [
    I18nModule.forRootAsync({
      useFactory: (configSrv: NestConfig) => ({
        fallbackLanguage: configSrv.getOrThrow('FALLBACK_LANGUAGE'),
        loaderOptions: {
          path: path.join(__dirname, '/i18n/'),
          watch: true,
        },
      }),
      resolvers: [
        { use: QueryResolver, options: ['lang'] },
        AcceptLanguageResolver,
        new HeaderResolver(['x-lang']),
      ],
      inject: [NestConfig],
    })
  ],
  providers: [],
})
export class AppModule {}

Solution

  • After some exploration, I solve this error by replacing configSrv.getOrThrow('FALLBACK_LANGUAGE') to "en".

    So here is my app.module.ts file that is working fine:

    @Module({
      imports: [
        I18nModule.forRootAsync({
          useFactory: (configSrv: NestConfig) => ({
            fallbackLanguage: "en", /******  Change here ******/
            loaderOptions: {
              path: path.join(__dirname, '/i18n/'),
              watch: true,
            },
          }),
          resolvers: [
            { use: QueryResolver, options: ['lang'] },
            AcceptLanguageResolver,
            new HeaderResolver(['x-lang']),
          ],
          inject: [NestConfig],
        })
      ],
      providers: [],
    })