datePipe 中的 i18n Angular

i18n in datePipe Angular

我有一个应用程序,它 运行 有两种语言(我可以使用 i18n 更改并选择我想要的语言)英语/法语。

即使我 select 法语,目前我也只能得到英文日期。

   <div class="information">
              {{ information.date | information:'EEEE'}} {{information.date | date:'d'}} {{ information.date | date:'MMMM'}} {{ information.date |
              date:'yyyy'}}
        </div>

目前我在 2018 年 8 月 17 日这个星期一得到它,我也想得到法国的 Lundi 17 Aout 2018

有没有办法根据 selected 的语言更改日期?

我对 i18n 没有更多的了解,但在学习了文档之后,我确保这段代码适合你。

ng 服务 --configuration=fr

将此命令用于 运行 您的程序。此处 fr 指法语标识符。

如果要导入其他语言的区域设置数据,可以在 app.module.ts 文件中手动完成。

从“@angular/common”导入 {registerLocaleData};

从“@angular/common/locales/fr”导入 localeFr;

registerLocaleData(localeFr, 'fr');

按照此处所述创建和使用自定义管道:https://angular.io/guide/pipes

像这样:

import { Pipe, PipeTransform } from '@angular/core';

enum Days {
    Dimanche,
    Lundi,
    Mardi,
    Mercredi,
    Jeudi,
    Vendredi,
    Samedi
}

enum Months {
    Janvier,
    Février,
    Mars,
    Avril,
    Mai,
    Juin,
    Juillet,
    Août,
    Septembre,
    Octobre,
    Novembre,
    Décembre
}

@Pipe({ name: 'frenchDate' })
export class FrenchDatePipe implements PipeTransform {
    transform(date: Date) {

        const dayOfMonth = date.getDate();
        const nameOfDay = Days[date.getDay()];
        const nameOfMonth = Months[date.getMonth()];
        const year = date.getYear();

        const result = nameOfDay + ' ' + dayOfMonth + ' ' + nameOfMonth + ' ' + year;

       return result;
    }
}