如何使 Angular 11 i18n 在 NRWL NX workspace.json 中工作?
Posted
技术标签:
【中文标题】如何使 Angular 11 i18n 在 NRWL NX workspace.json 中工作?【英文标题】:How to make Angular 11 i18n work in NRWL NX workspace.json? 【发布时间】:2021-05-13 23:15:57 【问题描述】:Angular 11 内置了对i18n 的支持。这在 angular.json
配置文件中配置时非常有用。
我正在做一个大型项目,其中单个 monorepo 中有多个子项目。我们正在使用 Nrwl NX workspace.json
来配置项目。
问题是workspace.json
对i18n 有不同的语法,而且它似乎与angular.json
的语法不兼容。此外,关于 i18n 的 NX 文档非常简短(几乎不存在)。
结果是目前我的应用根本没有本地化。
任何想法如何让 i18n 在 NRWL NX 中工作?
提前谢谢你。
【问题讨论】:
备案:这里是关于缺少文档的错误报告的链接github.com/nrwl/nx/issues/4751 【参考方案1】:经过几次尝试,我找到了一种方法。
所以有几个步骤可以让 Angular 的 i18n 在 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 使用特定的构建目标
"serve":
"executor": "@angular-devkit/build-angular:dev-server",
"options":
"browserTarget": "appname:build:en"
步骤 #4) 运行 nx serve 以验证其是否正常工作
完整的文章在这里 - http://blog.davidjs.com/2021/03/working-with-angular-i18n-inside-nrwl-nx-workspace/
【讨论】:
以上是关于如何使 Angular 11 i18n 在 NRWL NX workspace.json 中工作?的主要内容,如果未能解决你的问题,请参考以下文章