
plurals – это строковый ресурс Android для текста, который зависит от числа. Он нужен, чтобы писать не 1 day и 2 days вручную через if, а отдавать выбор формы системе: 1 день, 2 дня, 5 дней, 21 день.
В проекте https://github.com/michaelbel/Plurals один ресурс R.plurals.days_count показан двумя способами: через обычный Fragment с XML-разметкой и через Compose. Также в проекте есть набор локализаций, на которых хорошо видно, что plural-правила в разных языках устроены по-разному.
Плохой вариант – собирать строку вручную:
val text = if (count == 1) {
"$count day"
} else {
"$count days"
}
Для английского это еще выглядит терпимо, но для русского уже не работает:
1 день
2 дня
5 дней
21 день
22 дня
25 дней
А в арабском или словенском форм еще больше. Поэтому plural-логику не стоит писать руками. Android уже знает правила текущей локали и может выбрать нужную форму по числу.
В values/strings.xml проекта объявлен plural для английского:
<plurals name="days_count">
<item quantity="one">%d day</item>
<item quantity="other">%d days</item>
</plurals>
name – имя ресурса, через него в коде будет доступен R.plurals.days_count.
quantity – грамматическая категория. Android поддерживает:
zeroonetwofew