Как сделать перевод во множественном числе с помощью службы i18n в машинописном тексте?

В одном из моих компонентов моего проекта Angular я использую функцию i18n для интернационализации своих значений (используемых внутри модального окна).

description: this.i18n({
  value: `You are about to buy X articles`,
  id: 'cartModalDescription'
}),

В этом случае мне нужно поставить множественное число articles. Как я могу сделать это, используя функцию i18n?

В документации показаны только примеры внутри шаблонов html, но ни один из них не рассматривает использование функции внутри файла ts.

Любые предложения будут оценены.


person Fabien    schedule 02.02.2021    source источник


Ответы (1)


Вы можете попробовать использовать конкатенацию строк на основе некоторых условий вместо функции i18n. Что-то вроде этого:

description: `You are about to buy ${this.selectedArticleArray.length} ${this.selectedArticleArray.length > 1 ? "article" : "articles"}`
person Bruno Duarte Brito    schedule 02.02.2021
comment
Спасибо. Однако это будет работать только для английского языка. Я пытаюсь реализовать интернационализацию для нескольких языков. - person Fabien; 02.02.2021
comment
Не знаю, совпадает ли $localize с i18n, но вы можете попробовать то, что описано в этом ответе - person Bruno Duarte Brito; 02.02.2021
comment
Я видел этот вопрос до того, как открыл свой. Это не работает с моим примером.. :/ - person Fabien; 03.02.2021