NGB-DatePicker изменить язык подсказок - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть мультиязычное приложение, в котором используется пользовательский NgbDatePickerI18n:

@Injectable()
export class CustomDatepickerService extends NgbDatepickerI18n {

    constructor(private translateService: TranslateService) {
        super();
    }

    getWeekdayShortName(weekday: number): string {
        return I18N_VALUES[this.translateService.getLanguage()].weekdays[weekday - 1];
    }

    getMonthShortName(month: number): string {
        return I18N_VALUES[this.translateService.getLanguage()].months[month - 1];
    }

    getMonthFullName(month: number): string {
        return this.getMonthShortName(month);
    }

    getDayAriaLabel(date: NgbDateStruct): string {
        return `${date.day}-${date.month}-${date.year}`;
    }
}

, но все работает нормально, когда я наведите курсор на кнопку предыдущего / следующего месяца, и в раскрывающихся списках выберитемесяц / год я вижу небольшую подсказку на английском языке.Я хотел бы перевести это.Посмотрел фактический код: https://github.com/ng-bootstrap/ng-bootstrap/blob/master/src/datepicker/datepicker-navigation.ts#L15 и документацию https://ng -bootstrap.github.io / # / components / datepicker / Overview # i18n про интернационализацию, мне не очень понятнокак этого добиться.Я вижу следующее:

Следующие / предыдущие метки кнопок могут быть переведены с использованием стандартного механизма Angular i18n.Например, метка предыдущего месяца извлекается под именем ngb.datepicker.previous-month.

Но, как я уже сказал, я не могу найти небольшой пример того, как интегрировать это в мой CustomDatepickerService.Может ли кто-нибудь дать мне небольшой пример того, как этого добиться, если это возможно?

Большое спасибо!

1 Ответ

0 голосов
/ 19 декабря 2018

Вы можете ссылаться на i18n Internalization Angular docs https://angular.io/guide/i18n#internationalization-i18n

Необходимо следовать пользовательским идентификаторам и создать файл .xlf с этими тегами ниже.

<trans-unit id="ngb.datepicker.previous-month" datatype="html">
  <source>Previous Month</source>
  <target state="new">Translated Text</target>
</trans-unit> 

Затем вам нужно подключить это.xlf в скрипт сборки ng.

Ссылка: https://medium.com/frontend-fun/angular-introduction-to-internationalization-i18n-28226a85e04e

https://angular -templates.io / tutorials / about / angular-internationalization-i18n-multi-language-app

...