我正试图在我的项目中实现@angular/localize
,这是NX工作区(NX@16.4.3)的一部分.我在遵循官方指南:https://angular.io/guide/i18n-overview
具体来说,我
-
我安装了
@angular/localize@16.1.3
的版本,它与我当前的Angular 版本一致 -
将
import '@angular/localize/init'
添加到我的多边形填充中.ts -
在我的Main上增加了
/// <reference types="@angular/localize" />
.ts -
已将I18N配置添加到我的项目配置:
"i18n": { "sourceLocale": "en", "locales": { "de": { "translation": "apps/web/login/src/locale/messages.de.xlf" } } }
-
已配置构建目标
... "aot": true, "localize": ["de"] ...
当我nx serve
这个项目,我希望有我的字符串在de
本地化.但是,我得到了以下错误
错误:您的应用程序或其依赖项之一似乎正在使用I18N. Angel 9引入了一个需要加载的全局
$localize()
函数. 请从Angular CLI运行ng add @angular/localize
. (对于非CLI项目,在polyfills.ts
文件中添加import '@angular/localize/init';
.
当我判断Polyfis.js包文件时,我发现webpack显然忽略了@angular/localize/init
的导入,这解释了应用程序中缺少$LOCALIZE函数.
...
/***/ 85028:
/*!****************************************!*\
!*** @angular/localize/init (ignored) ***!
\****************************************/
/***/ (() => {
/* (ignored) */
/***/ }),
...
我如何才能让webpack不忽视这一点,并使其发挥作用?
使用@angular-devkit/build-angular:extract-i18n
提取标签的效果非常好.
我try 重新安装NODE_MODULE以确保版本正确,并查找GitHub问题以找到答案--但没有成功