我正在使用 Nestjs-i18n 进行内部化并收到此错误。
错误:
{"message":"[App] Configuration key \"FALLBACK_LANGUAGE\" does not exist"}
这是我的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 {}
经过一番探索,我通过将
configSrv.getOrThrow('FALLBACK_LANGUAGE')
替换为 "en"
解决了这个错误。
这是我的 app.module.ts 文件,工作正常:
@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: [],
})