Как получить результат plural внутри ts файла?(статически это ,вроде, называется)
Есть такой плюрал.
export class I18nPluralPipeComponent {
messages: any[] = ['Message 1'];
messageMapping:
{[k: string]: string} = {'=0': 'No messages.', '=1': 'One message.', 'other': '# messages.'};
}
чтобы он работал в HTML нужно его добавить в шаблон
template: `<div>{{ messages.length | i18nPlural: messageMapping }}</div>`
В итоге на странице покажет результат one message. Я хочу чтобы эта запись работала в ts файле.
let str = `${{ messages.length | i18nPlural: messageMapping }}`
Но он ругается. Как это реализовать?
Ответы (1 шт):
Автор решения: Maxim Zebzeev
→ Ссылка
Импортировать его в модуль
import { I18nPluralPipe } from '@angular/common';
providers: [
I18nPluralPipe,
},
],
импортировать в компоненте
import { I18nPluralPipe } from '@angular/common';
вызвать
constructor(
private i18nPlural: I18nPluralPipe,
) {}
использовать дальше
public arrForDocument: { [k: string]: string } = { one: 'документ', few: 'документа', many: 'документов', other: 'документов' };
let length = rows.length;
let srt = this.i18nPlural.transform(length, this.arrForDocument);