如何使 Angular 11 i18n 在 NRWL NX workspace.json 中工作?

How to make Angular 11 i18n work in NRWL NX workspace.json?

Angular 11 内置了对 i18n 的支持。这在 angular.json 配置文件中配置时效果很好。 我正在从事大型项目,其中单个 monorepo 中有多个子项目。我们正在使用 Nrwl NX workspace.json 来配置项目。 问题是 workspace.json 对 i18n 有不同的语法,它似乎与 angular.json 的语法不兼容。 NX 文档也非常简短(几乎不存在)关于 i18n 的说明。

结果是目前我的应用程序根本没有本地化。

关于如何使 i18n 在 NRWL NX 中工作有什么想法吗?

提前致谢。

经过几次尝试,我找到了使它工作的方法。

所以有几个步骤可以使 Angular 的国际化在 NRWL NX 工作区内工作。

步骤 #1) 在默认构建目标中定义多个语言环境

"targets": {
  "build": {
    "executor": "@angular-devkit/build-angular:browser",
    "options": {
        // … options not relevant to i18n removed
        "i18nMissingTranslation": "warning",
        "localize": ["fr", "en", "sp"]
    },

步骤 #2) 为每个语言环境定义命名构建目标

"configurations": {
   "production": {
     // ... some prod settings
   },
   "en": {
     "localize": ["en"]
   },
   "fr": {
     "localize": ["fr"]
   }
  },

步骤 #3) 更新服务配置以使用特定构建目标 注意 appname:build:en - 指示 nx 服务使用特定的构建目标

"serve": {
 "executor": "@angular-devkit/build-angular:dev-server",
 "options": {
   "browserTarget": "appname:build:en"
 }
}

步骤 #4) 运行 nx 服务验证其工作

这里有包含更多详细信息的完整文章 - http://blog.davidjs.com/2021/03/working-with-angular-i18n-inside-nrwl-nx-workspace/