缺少具有角度的区域设置"XXX"的区域设置数据

sso*_*nez 24 angular-i18n angular

我目前通过这种方式在" en-US " 上定义" LOCALE_ID " :

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

它运作得很好.但是,为了测试法语中日期的样子,我用" fr-FR " 替换了" en-US " 然后我得到了错误:

缺少区域设置"fr-FR"的区域设置数据.

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

Ala*_*lan 38

在档案中 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 {}
Run Code Online (Sandbox Code Playgroud)

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

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

DATE in FRENCH: {{ dateEvent | date: 'longDate'}}
Run Code Online (Sandbox Code Playgroud)

结果:

DATE in FRENCH: 25 mars 2018
Run Code Online (Sandbox Code Playgroud)

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

  • `registerLocaleData(localeFr);` 调用纯粹是副作用,将被 Tree Shaking 删除;换句话说,如果您使用 `"sideEffects": false` 启用树摇动,那么这在开发中有效,但在生产中失败。最好将函数调用放入 AppModule 构造函数中。 (3认同)
  • 我对这个错误消息有同样的问题:缺少区域设置“hu”的区域设置数据。对于管道“DatePipe”。这解决了。谢谢! (2认同)

Adr*_*n V 25

谢谢@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 {}
Run Code Online (Sandbox Code Playgroud)