我如何使用ngx本地化日期管道

时间:2019-11-06 09:31:57

标签: angular

我想将此日期管道翻译成挪威语。有没有一种不同于普通文本或变量翻译的转换日期管道的特定方法。

{{activity.feed.timestamp | timeAgo}}

1 个答案:

答案 0 :(得分:0)

您可以检查ngx-timeago是否支持i18n。

  

I18n默认情况下,没有可用的国际服务   格式化程序不提供语言支持。您应该提供一个,如果   您最终得到了需要它的格式化程序(或者   由库或您自己提供的TimeagoCustomFormatter)。的   国际服务的目的是包含所有必要的i18n   格式化程序使用的字符串。

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { Timeago, TimeagoIntl, TimeagoFormatter, TimeagoCustomFormatter } from 'ngx-timeago';
import { AppComponent } from './app';

export class MyIntl extends TimeagoIntl {
// do extra stuff here...
}

@NgModule({
  imports: [
    BrowserModule,
    TimeagoModule.forRoot({
      intl: { provide: TimeagoIntl, useClass: MyIntl },
      formatter: { provide: TimeagoFormatter, useClass: TimeagoCustomFormatter },
    })
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }
     

开箱即用地支持多种语言。这个   支持基于取自jquery-timeago的字符串对象。

     

要使用提供的任何语言,您必须导入   语言字符串并将其提供给国际服务。

import { Component } from '@angular/core';
import { TimeagoIntl } from 'ngx-timeago';
import {strings as englishStrings} from 'ngx-timeago/language-strings/en';

@Component({
  selector: 'app',
  template: `
    <div timeago [date]="1553683912689"></div>
  `
})
export class AppComponent {
  constructor(intl: TimeagoIntl) {
    intl.strings = englishStrings;
    intl.changes.next();
  }
}
     

您还可以自定义语言字符串或提供自己的语言字符串。