Angular: как отобразить дату во французском формате - PullRequest
0 голосов
/ 21 сентября 2018

Я новичок в Angular, я читаю документацию по Angular, и это трудно для такой элементарной вещи ... Я хочу, чтобы даты и другие вещи в моем приложении имели французскую локаль, а не значение по умолчанию 'en-US '...

Я начал читать эту документацию Angular , которая кажется немного неполной, потому что я выполнил документацию и потерпел неудачу:

>...\ClientApp>ng serve --configuration=fr
Configuration 'fr' could not be found in project 'ClientApp'.

ОК, теперь я смотрю на другую страницу документации в конвейере Дата.В нем говорится:

{{ value_expression | date [ : format [ : timezone [ : locale ] ] ] }}

, но ЛЮБОЙ пример использования locale, поэтому я попытался сделать это в тестовом приложении ссылка , например {{myDate | date: 'medium': undefined : 'fr'}}, но этоничего не отображается ... У меня в консоли:

ERROR
Error: InvalidPipeArgument: 'Missing locale data for the locale "fr".' for pipe 'DatePipe'

что еще нужно сделать или установить для отображения в Angular даты во французском формате?

Angular CLI: 6.1.5
Node: 8.11.1
OS: win32 x64
Angular: 6.1.8

Ответы [ 3 ]

0 голосов
/ 21 сентября 2018

Ответ зависит от версии angular, которую вы используете.Вы должны указать LOCALE, который вы будете использовать. По умолчанию LOCALE настроен как en-US, а для всех остальных необходимо вручную добавить то же самое, что и providers.Только способ providing для LOCALES отличается от angular versions.Проверьте следующее:

  1. Угловая 5 и выше :

    Добавьте следующие строки в app.module.ts:

    import { registerLocaleData } from '@angular/common';
    import localeFr from '@angular/common/locales/fr';
    registerLocaleData(localeFr, 'fr');
    
  2. ниже угла 5 :

    Добавьте следующие строки в app.module.ts:

    import { LOCALE_ID } from '@angular/core';
    
    @NgModule({
        imports : [],
        providers: [ { provide: LOCALE_ID, useValue: "fr-FR" }]
        //Your code
    })
    
0 голосов
/ 21 сентября 2018

Просто попробуйте это (французский формат: [Название дня] [Номер дня] [Название месяца] [Номер года])

{{myDate |date: 'EEEE, d, MMMM, y'}}

, если вы не хотите, чтобы название дня было удалено, EEEE из трубы

ИЛИ

  1. обновить ваш module.ts

    import {NgModule, LOCALE_ID} из '@ angular / core';

    import {registerLocaleData} из '@ angular / common';

    импорт localeFr из' @ angular / common / locales / fr ';

    registerLocaleData (localeFr);

    .....

    @NgModule ({

    ..... провайдеры: [{предоставить: LOCALE_ID, useValue: "fr-CA"}]

    })

сделает работу

0 голосов
/ 21 сентября 2018

Попробуйте добавить в свой модуль приложения следующий код

import { registerLocaleData } from '@angular/common';
import localeFr from '@angular/common/locales/fr';

// the second parameter 'fr' is optional
registerLocaleData(localeFr, 'fr');

https://angular.io/guide/i18n#i18n-pipes

РЕДАКТИРОВАТЬ: Затем, если вы хотите установить этот языковой стандарт по умолчанию, вам нужно установитьLOCALE_ID токен впрыска в виде 'fr':

{provide: LOCALE_ID, useValue: 'fr' }

В вашем модуле приложения

Надеюсь, это поможет

...