我有一个使用 ngx translate 的 angular 应用程序。所以我想出了一个根据语言格式化日期的管道
@Pipe({
name: 'localizedDate',
pure: false
})
export class LocalizedDatePipe implements PipeTransform {
constructor(private translateService: TranslateService) {
}
transform(value: any, pattern: string = 'shortDate'): any {
const datePipe: DatePipe = new DatePipe(this.translateService.currentLang);
return datePipe.transform(value, pattern);
}
}
在本地我没问题,但是当我使用生产模式构建时,我遇到了以下问题:
我收到以下错误:
<块引用>错误:InvalidPipeArgument:'缺少语言环境“fr”的语言环境数据。 ' 用于管道 't'
我从我的 api 获得的日期示例:2021-06-10T12:12:29.787428+00:00
答案 0 :(得分:1)
这不是 ngx 翻译问题,在使用日期或货币管道等进行格式化之前,您需要向 Angular 注册区域设置数据。
例如法语版
import localeFr from '@angular/common/locales/fr';
import localeFrExtra from '@angular/common/locales/extra/fr';
...............
registerLocaleData(localeFr, 'fr', localeFrExtra);
registerLocaleData(localeFr, 'fr-FR', localeFrExtra);