Я делаю многоязычное приложение. Я использую пакет ngx-translate, все шло очень хорошо, потому что модуль ngx-translate предоставляет мне 2 варианта перевода, он предоставляет мне сервис перевода для перевода текстовых строк внутри component.ts и директиву | перевести, чтобы перевести текстовые строки в component.html.
Я использую угловую конструкцию материала, но раздел пагинатора (mat-paginator) можно получить только с помощью директивы углового материала, я изучил в интернете, как перевести эти строки, и тот же угловой материал дает вам возможность сделать это, на самом деле, это дает вам пример:
https://stackblitz.com/edit/angular-5mgfxh-6mbpdq
В примере показано, что вы должны использовать функцию справки для перевода текстовых строк, вызывая функцию в модуле, где перевод будет выполняться следующим образом:
app.module.ts
{предоставить: MatPaginatorIntl, useValue: getDutchPaginatorIntl ()}
export function getDutchPaginatorIntl() {
const paginatorIntl = new MatPaginatorIntl();
paginatorIntl.itemsPerPageLabel = 'Items per pagina:';
paginatorIntl.nextPageLabel = 'Volgende pagina';
paginatorIntl.previousPageLabel = 'Vorige pagina';
return paginatorIntl;
}
Проблема здесь, как я могу внедрить экземпляр TranslateService, который находится внутри этого модуля в этой справочной функции?
Как я могу перетащить экземпляр службы перевода, который находится внутри этого модуля, в функцию справки, которая предназначена для перевода этого модуля?
В качестве дополнительных данных я импортирую модуль TranslateModule, предоставленный службой перевода, и конвейер перевода для всех компонентов в этом модуле.
Я уже пытался сделать это:
app.module.ts
{provide: MatPaginatorIntl, useValue: getTranslatePaginatorIntl, deps: [TranslateService]}
Функция getTranslatePaginatorIntl:
export function getTranslatePaginatorIntl (translate: TranslateService) {
const paginatorIntl = new MatPaginatorIntl ();
paginatorIntl.itemsPerPageLabel = 'Items per page:';
paginatorIntl.firstPageLabel = 'First page';
paginatorIntl.previousPageLabel = 'Previous page';
paginatorIntl.nextPageLabel = 'Next page';
paginatorIntl.lastPageLabel = 'Last page';
return paginatorIntl;
}
И это не работает, Вы можете мне помочь?
У меня работает пример:
https://stackblitz.com/edit/translate-mat-paginator-with-ngx-translate