# General Translation React SDKs (gt-react, gt-next, gt-react-native): `<Plural>`
URL: https://generaltranslation.com/ru/docs/react/reference/components/plural.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Отображайте контент, зависящий от количества, с использованием правил множественного числа активной локали. Справочник API для компонента `<Plural>`.

Компонент `<Plural>` меняет формулировку в зависимости от количества, чтобы предложение согласовывалось с числом в каждом языке. В английском нужны две (&quot;one item&quot; / &quot;two items&quot;), тогда как в других языках может потребоваться до шести.

*Доступно в `gt-react`, `gt-next`, `gt-tanstack-start` и `gt-react-native`.*

## Обзор [#overview]

Передайте количество в `n` и укажите дочерний элемент для каждой формы множественного числа.

```tsx
<Plural
  n={count}
  one={<>You have one item.</>}
  other={<>You have some items.</>}
/>
```

*Примечание: поместите `<Plural>` внутрь [`<T>`](/docs/react/reference/components/t), чтобы перевести варианты, и оберните динамические значения внутри них в компонент переменной, например [`<Num>`](/docs/react/reference/components/num).*

## Как это работает [#how-it-works]

* **Выбор по локали.** Значение `n` сопоставляется с категорией множественного числа по [правилам множественного числа Unicode CLDR](https://cldr.unicode.org/index/cldr-spec/plural-rules) для активной локали. Затем отображается ветка для этой категории.
* **Резервный вариант ветки.** Если выбранная категория недоступна, `<Plural>` использует `plural`, затем `other`. `children` отображается только если ни одна из общих веток не существует.
* **Резервный вариант без числа.** Если `n` отсутствует или не является корректным числом, `<Plural>` отображает `children` как резервный вариант, а не вызывает ошибку.

<Callout type="info">
  **Изменено в v11.1.8:** Для отсутствующих категорий `zero` и `one` теперь сначала используются
  `plural` или `other`, а затем `children`, как и для
  `two`, `few` и `many`.
</Callout>

## Какие формы добавлять [#forms]

Вам нужны только те формы множественного числа, которые используются в вашем языке. Возможные формы: `zero`, `one`, `two`, `few`, `many`, `other`, а также алиасы `singular`, `dual` и `plural`.

* Для `en-US` используйте `one` и `other` (или `singular` и `plural`).
* Для `zh-CN` нужна только `other`.

См. [правила множественного числа в CLDR](https://cldr.unicode.org/index/cldr-spec/plural-rules) для каждого языка.

## Пропсы [#props]

| Пропс                    | Описание                                                                          | Тип         | Необязательный | По умолчанию    |
| ----------------------- | --------------------------------------------------------------------------------- | ----------- | -------------- | --------------- |
| [`n`](#n)               | Число, определяющее форму множественного числа.                                   | `number`    | Нет            | —               |
| [`children`](#children) | Конечное резервное содержимое, если не подошла ни одна категория или общая ветка. | `ReactNode` | Да             | —               |
| [`locales`](#locales)   | Переопределение локали для правил множественного числа.                           | `string[]`  | Да             | Активная локаль |
| [`[form]`](#form)       | Содержимое для категории множественного числа.                                    | `ReactNode` | Да             | —               |

### `n` [#n]

**Тип** `number` · **Обязательно**

Число, используемое для определения формы множественного числа. Если оно отсутствует или не является корректным числом, `<Plural>` отображает `children` как резервный вариант вместо того, чтобы вызывать ошибку.

### `children` [#children]

**Тип** `ReactNode` · **Необязательно**

Резервное содержимое, которое отображается, если `n` не соответствует ни точной категории, ни ветке `plural` или `other`.

### `locales` [#locales]

**Тип** `string[]` · **Необязательно** · **По умолчанию** Активная локаль

Локали, для которых используются правила множественного числа. Если значение не указано, используется активная локаль.

### `[form]` [#form]

**Тип** `ReactNode` · **Необязательный**

Проп для каждой категории множественного числа — `zero`, `one`, `two`, `few`, `many`, `other` (или алиасы `singular`, `dual` и `plural`). Доступные категории зависят от локали.

## Примеры [#examples]

*В примерах используется импорт из `gt-react`; вместо него импортируйте из пакета вашего фреймворка.*

```tsx title="BasicExample.tsx"
import { Plural } from 'gt-react';

export default function ItemCount({ count }) {
  return (
    <Plural
      n={count} // [!code highlight]
      one={<>You have one item.</>}
      other={<>You have some items.</>}
    />
  );
}
```

```tsx title="FallbackExample.tsx"
import { Plural } from 'gt-react';

export default function ItemCount({ count }) {
  return (
    <Plural n={count} one={<>You have one item.</>}>
      You have some items. // [!code highlight]
    </Plural>
  );
}
```

```tsx title="PluralExample.tsx"
import { T, Plural, Num } from 'gt-react';

export default function ItemCount({ count }) {
  return (
    <T>
      <Plural
        n={count}
        one={<>You have <Num>{count}</Num> item.</>} // [!code highlight]
        other={<>You have <Num>{count}</Num> items.</>} // [!code highlight]
      />
    </T>
  );
}
```

## Заметки [#notes]

* `<Plural>` обрабатывает формы множественного числа в соответствии с активной локалью.
* Доступные варианты зависят от локали и следуют [правилам множественного числа Unicode CLDR](https://cldr.unicode.org/index/cldr-spec/plural-rules).
* **Связанный компонент:** [`<Branch>`](/docs/react/reference/components/branch) выполняет ветвление на основе произвольных значений.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
