web-dev-qa-db-ja.com

angularのロケール "XXX"のロケールデータがありません

私は現在、「LOCALE_ID」を「en-US」と定義しています。

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

そしてそれはかなりうまく機能します。ただし、フランス語で日付がどのように見えるかをテストするために、「en-US」を「fr-FR」に置き換えて、エラーが発生しました。

ロケール「fr-FR」のロケールデータがありません。

私はいくつかの研究を行いましたが、それに関連するものは見つかりませんでした。フランス語のロケールはデフォルトのパッケージに含まれていますか?別のパッケージですか?自分で作成する必要がありますか?

23
ssougnez

ファイル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

34
Alan

ありがとう@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 {}
3
Adrien V

https://github.com/angular/angular-cli/issues/668 をご覧ください

これはあなたの場合かもしれません

0
Fadi Abo Msalam