datePipe Angular中的i18n

时间:2018-07-20 06:00:35

标签: angular ngx-translate

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

此刻,即使选择法语,我也只能用英语获取日期。

   <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

有没有一种方法可以根据选择的语言来更改日期?

2 个答案:

答案 0 :(得分:1)

按照以下说明创建和使用自定义管道: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;
    }
}

答案 1 :(得分:0)

我对i18n不再有任何了解,但是在研究了文档之后,我确保此代码将对您有效。

ng服务--configuration = fr

使用此命令运行程序。此处 fr 是法语标识符。

如果要导入其他语言的语言环境数据,则可以在 app.module.ts 文件中手动进行。

从'@ angular / common'导入{registerLocaleData};

从'@ angular / common / locales / fr'导入localeFr;

registerLocaleData(localeFr,'fr');