Angular universal server error: When using the default fallback, a fallback language must be provided in the config

Angular universal server error: When using the default fallback, a fallback language must be provided in the config

我已经在我的应用程序上安装了 angular universal。 运行 npm run build:ssr - 完成。作品。 运行 npm run server:ssr - DONE.WORKS.

访问服务器 URL (localhost:4000) 后,页面未完全加载,终端出现以下错误:

i18n Transloco 未在模块文件中完全配置。

我也遇到了同样的问题,所以我想分享一下我的发现。

对我来说,有两个似是而非的causes/solutions:

  • 首先,在我项目的 I18N 默认 JSON 文件中 en.json,我在 [=45= 的结构中遇到了问题] 文件。

例如,我犯了以下错误。我错过了第二个标签后的逗号 'FINISH' :

{
"COMMON": {
    "EDIT": "Edit",
    "FINISH": "Finish"
    "QUIT": "Quit",
   }
}

因此在更正结构后,应用程序 运行 没有错误。

  • 其次,问题的另一个原因可能是,在运行时 t运行sloco 无法在所选语言中找到正确的标签,因此它寻找后备语言,但它甚至找不到在 transloco-root.module.ts 所以在添加我的后备语言之后,它试图在 transloco-root.module.ts.[=33 中指定的后备语言中找到相同的语言=]

所以它找到了那个标签,问题就解决了。

但是 在提供的第二个解决方案中,您至少需要在该后备语言的 json 文件中以正确的格式包含该错误标签。

我添加了如下后备语言:

useValue: translocoConfig({
            availableLangs: ['fr', 'en'],
            defaultLang: 'en',
            reRenderOnLangChange: true,
            fallbackLang: 'fr',
            prodMode: environment.production,
            missingHandler: {
                logMissingKey: true
            }
        })