67

我目前以这种方式在“ en-US ”上定义“ LOCALE_ID ”:

@NgModule({
    providers: [{ provide: LOCALE_ID, useValue: "en-US" }, ...],
    imports: [...],
    bootstrap: [...]
})

它工作得很好。但是,为了测试日期在法语中的样子,我将“ en-US ”替换为“ fr-FR ”,然后出现错误:

缺少区域设置“fr-FR”的区域设置数据。

我做了一些研究,但没有发现任何与此相关的东西。法语的语言环境是否包含在默认包中?它是一个不同的包吗?我必须自己创建它们吗?

4

3 回答 3

127

在文件中app.module.ts

...
import { NgModule, LOCALE_ID } from '@angular/core';
import { registerLocaleData } from '@angular/common';
import localeFr from '@angular/common/locales/fr';
registerLocaleData(localeFr);


@NgModule({
  imports: [...],
  declarations: [...],
  bootstrap: [...],
  providers: [
    { provide: LOCALE_ID, useValue: 'fr-FR'},
  ]
})
export class AppModule {}

(来源:https ://next.angular.io/guide/i18n )

并在您的模板 ( *.component.html)

DATE in FRENCH: {{ dateEvent | date: 'longDate'}}

结果:

DATE in FRENCH: 25 mars 2018

(来源:https ://angular.io/api/common/DatePipe )

于 2018-02-18T06:59:03.500 回答
30

谢谢@Alan,你只是忘记了这个:import { registerLocaleData } from '@angular/common';

完整代码:

import { registerLocaleData } from '@angular/common';
import localeFr from '@angular/common/locales/fr';
registerLocaleData(localeFr);

@NgModule({
  imports: [...],
  declarations: [...],
  bootstrap: [...],
  providers: [
    { provide: LOCALE_ID, useValue: 'fr-FR'},
  ]
})
export class AppModule {}
于 2019-03-30T16:52:16.577 回答
0

请看一下 https://github.com/angular/angular-cli/issues/6683

这可能是你的情况

于 2017-09-26T06:23:08.440 回答