Как изменить сообщение "Неверная дата" в загрузчике даты ngx, не находясь в модулях узла

Я изменил язык моего средства выбора даты, но появившееся сообщение все еще на английском языке. Я знаю, что это внутри ngx-bootstrap / chronos / locale / locale.defaults.ts, где он приносит следующую информацию

export declare const defaultInvalidDate = "Invalid date";

Я также хотел бы изменить это сообщение. Есть ли какая-либо информация, которую я должен добавить к "input [bsConfig] =" ... В любом случае, где я могу изменить это сообщение, не перемещая папку Node Modules? Спасибо.

1 ответ

Решение

Мне наконец удалось это сделать:

Вы можете импортировать свой LocaleData объект и функция defineLocale:

import {enGbLocale} from 'ngx-bootstrap/locale';
import {BsLocaleService, defineLocale} from 'ngx-bootstrap';

Затем в вашем конструкторе вы можете получить доступ ко всем атрибутам enGbLocale и измените его:

constructor(private localeService: BsLocaleService) {
    enGbLocale.invalidDate = 'Custom label';
    defineLocale('custom locale', enGbLocale); 
    this.localeService.use('custom locale');
}

Создайте адаптер для перезаписи по умолчанию BsDatepickerConfig в формат, который не вызовет ошибку

В основном модуле, куда вы включаете BsDatePicker

@NgModule({
  providers: [
    { provide: BsDatepickerConfig, useFactory: NaoDatepickerConfig },
    ....
  ]
}

nao-date-picker.adapter.ts

import { BsDatepickerConfig } from 'ngx-bootstrap/datepicker';

export function NaoDatepickerConfig(): BsDatepickerConfig {
  return Object.assign(new BsDatepickerConfig(), {
    dateInputFormat: 'YYYY-MM-DD'
  });
}
Другие вопросы по тегам