Angular 9 引入了需要加载的全局“$localize()”函数

Bal*_*ran 68 localization angular angular9

我在新的 angular 项目设置中遇到以下错误。

已安装的软件包及其版本

错误 错误:未捕获(承诺):错误:您的应用程序或其依赖项之一似乎正在使用 i18n。Angular 9 引入了一个$localize()需要加载的全局函数。请添加import '@angular/localize';到您的 polyfills.ts 文件中。错误:您的应用程序或其依赖项之一似乎正在使用 i18n。Angular 9 引入了一个$localize()需要加载的全局函数。

注意:我来自以下。它建议回退到旧版本。 https://github.com/angular/angular/issues/32508

rhi*_*5oh 99

你需要先确保你有 @angular/localize 包:

npm install @angular/localize --save

然后,import '@angular/localize/init'在你的polyfills.ts文件中,就像错误所说的

  • 抱歉,如果其他人有这个问题,刚刚找到答案 - https://github.com/just-jeb/angular-builders/issues/678#issuecomment-755903805 (2认同)

dot*_*pro 40

如果您使用 Angular CLI,最好的方法是运行

ng add @angular/localize

它会自动处理

要不然

import '@angular/localize/init'; 给你的 polyfills.ts

测试过 Angular 9


小智 11

如果你在同一个工作区中有很多 angular 项目,运行 ng add @angular/localize 只会import '@angular/localize/init' 在默认项目中向 polyfills.ts添加 import 语句,我认为这将在以后的更新中修复。

所以你需要import '@angular/localize/init'在其他项目中手动添加到 polyfills.ts 中。

  • 被低估的答案。官方指南中从未提及这一点。 (4认同)
  • 我怀疑这个答案可能拯救了我的日子和我的理智。 (2认同)

Ati*_*eed 8

在我将具有多个子应用程序的大型 Nx/Angular CLI 应用程序升级到 Angular 10 后,开始出现此错误。ng add @angular/localize如果应用程序包含多个应用程序,错误中建议的解决方案(请从 Angular CLI 运行)将不起作用。每个自动生成的应用程序都有自己的polyfill.ts. import '@angular/localize/init';我在每个 polyfill.ts 文件中手动添加了 import ( )。为了在运行单元测试时修复相同的错误,我还必须在库的 test.ts 文件中添加导入。


小智 6

如果您正在运行ng test并且上述答案不起作用,请安装该软件包并添加

import "@angular/localize/init"

polyfills-test.ts


HLS*_*HLS 6

你必须添加这个包

ng add @angular/localize
Run Code Online (Sandbox Code Playgroud)

然后添加import '@angular/localize/init';到你的ployfills.ts

但是如果你的测试在库中失败了,你必须添加import '@angular/localize/init';到你的test.ts


xid*_*dix 5

Angular 9 引入了一个全局 $localize() 函数,如果您使用 i18n,则需要加载该函数。

ng add @angular/localize从 Angular CLI运行。

然后确保您有:
-@angular/localize作为应用程序的 package.json 中的依赖项
-import '@angular/localize/init'在您的 polyfills.ts 中


小智 5

跑步

npm install @angular/localize --save
Run Code Online (Sandbox Code Playgroud)

然后,在你的polyfills.ts

import '@angular/localize/init' 
Run Code Online (Sandbox Code Playgroud)

这对我有用


Lui*_*ino 5

我在将 Angular 版本从 12 更新到 13 时遇到此错误。我按照说明操作:

  1. 运行 ng add @angular/localize
  2. 在您的 polyfills.ts 中导入 '@angular/localize/init'

但这对我不起作用。毕竟我的 Angular 12 应用程序工作正常,我的模块中已经有了 @angular/localize ,并且在 polyfills.ts 文件中导入了。

为了解决这个问题,我必须更新“@ng-bootstrap/ng-bootstrap”版本。鉴于过时的 @ng-bootstrap/ng-bootstrap 版本和错误描述之间没有明显的联系,我希望这个建议可以给某人带来一些麻烦。