缺少语言环境“de-DE”的语言环境数据

问题描述 投票:0回答:2

我正在使用 Angular 9

在我的一个组件中,我使用货币格式,如下所示:

import { formatCurrency } from '@angular/common';
formatCurrency(23456, 'de-DE', '$')

在这里,如果我将 de-DE 作为文化传递,则会收到如下错误:

缺少语言环境“de-DE”的语言环境数据

但是,如果我将文化传递为 en-DE,它就可以正常工作。

这里有什么问题吗?请帮忙。

angular typescript locale format-currency
2个回答
39
投票

默认情况下,Angular 仅包含英语的语言环境数据。

如果您希望它正常工作,您将需要导入并注册正确的区域设置。

import { registerLocaleData } from '@angular/common';
import localeDe from '@angular/common/locales/de';
import localeDeExtra from '@angular/common/locales/extra/de';

registerLocaleData(localeDe, 'de-DE', localeDeExtra);

那么你应该可以使用它了。

在您的

app.module.ts

中注册区域设置是最有意义的

5
投票

如果您想更改应用程序的语言,您需要在 app.module.ts 中注册您的区域设置,如下所示:

//Get LOCALE_ID, the register and the german package
import { NgModule, LOCALE_ID } from '@angular/core';
import { registerLocaleData } from '@angular/common';
import * as de from '@angular/common/locales/de';
...

@NgModule({
  declarations: [
    AppComponent,
    ...
  ],
  imports: [
    BrowserModule
  ],
  providers: [
    { provide: LOCALE_ID, useValue: 'de-DE' } //Add the id and the language code here
  ],
  bootstrap: [AppComponent]
})
export class AppModule {
  constructor() {
    registerLocaleData(de.default); //Then register the language
  }
}

希望对你有帮助

© www.soinside.com 2019 - 2024. All rights reserved.