缺少语言环境"ru"Angular 5的区域设置数据

Ser*_*eev 11 javascript internationalization angular angular5

我将Angular更新到版本5并得到此错误

错误

在我看来,这一行中的管道错误

<h5>{{ event.date | date:"yyyy.MM.dd"}}</h5>.

有谁知道如何解决这个问题?

Иго*_*нюк 13

看起来你没有更新你的管道,因为breacking变化的角度5见:https://github.com/angular/angular/blob/master/CHANGELOG.md

  • 默认情况下,Angular现在只包含语言en-US的语言环境数据,如果将LOCALE_ID的值设置为另一个语言环境,则必须为此语言导入新的语言环境数据,因为我们不再使用intl API.
  • 所有i18n管道现在都有一个额外的最后一个参数区域设置,允许您使用特定的区域设置,而不是在标记LOCALE_ID中定义的区域设置(其默认值为en-US).
  • 预定义的格式(short,shortTime,shortDate,medium,...)现在使用CLDR给出的模式(就像在AngularJS中一样)而不是intl API中的模式.你可能会注意到一些变化,例如,对于en-US,shortDate将是8/15/17而不是8/15/2017.

  • 现在GAGGGG而不是G的缩小版eras,格式G现在类似于GG和GGG.

  • 缩小版的月份现在是MMMMM而不是L,格式L现在是几个月的短独立版本.
  • 工作日的缩小版现在是EEEEE而不是E,格式E现在类似于EE和EEE.
  • 时区z现在将回退到O并输出GMT + 1而不是完整的区域名称(例如太平洋标准时间),这是因为在所有现有语言环境中拥有所有区域名称所需的数据量太大.
  • 时区Z现在将输出ISO8601基本格式,例如+0100,您现在应该使用ZZZZ来获得GMT + 01:00.

    您应该更改日期管道

    在此输入图像描述

您还需要在app.module中提供您的语言,如下所示:

在此输入图像描述


小智 8

快速修复:为您的语言环境添加导入。对于“ru”,您应该在 app.module 中添加以下行:

import '@angular/common/locales/global/ru';
Run Code Online (Sandbox Code Playgroud)


Mil*_*ena 7

我已经更新了 app.mudule.ts 以本地化日期。

// app.mudule.ts

...
import { NgModule, LOCALE_ID } from '@angular/core';
import { registerLocaleData } from '@angular/common';
import localeRu from '@angular/common/locales/ru';

registerLocaleData(localeRu);

@NgModule({
  ...
  providers: [
    ...
    { provide: LOCALE_ID, useValue: 'ru' }
  ],
  bootstrap: [AppComponent]
})

// feed-list-item.component.html (nothing was updated here)

...
<span>{{ event.date | date:'fullDate'}}</span>
...
Run Code Online (Sandbox Code Playgroud)