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 {}
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: [],
})