# General Translation React SDKs (gt-react, gt-next, gt-react-native): Обработка форм множественного числа и ветвей URL: https://generaltranslation.com/ru/docs/react/guides/handling-plurals-and-branches.mdx --- title: Обработка форм множественного числа и ветвей description: Как обрабатывать формы множественного числа в React и условный переведённый контент с помощью и . related: links: - /docs/react/guides/formatting-variables - /docs/react/guides/translating-jsx - /docs/react/guides/translating-strings - /docs/react/guides/translating-with-dictionaries --- В разных локалях используются разные формы множественного числа: в английском обычно есть `one` и `other`, тогда как в некоторых языках требуются дополнительные формы. Используйте [``](/docs/react/reference/components/plural) для формулировок, зависящих от количества, а [``](/docs/react/reference/components/branch) — для другого условного контента. ## Выберите формы множественного числа или ветви [#choose] * Используйте [``](/docs/react/reference/components/plural), когда формулировка зависит от числа, например от количества сообщений или результатов поиска. * Используйте [``](/docs/react/reference/components/branch), когда содержимое зависит от статуса, плана, логического или другого значения. * Поместите любой из этих компонентов внутрь [``](/docs/react/reference/components/t), чтобы каждый вариант можно было перевести. * Оборачивайте динамические значения в каждом варианте [компонентом переменной](/docs/react/guides/formatting-variables), например [``](/docs/react/reference/components/num) или [``](/docs/react/reference/components/var). Оба компонента работают одинаково в React, Next.js, TanStack Start и React Native. Различается только пакет импорта. ## Склонение по числу с `` [#plural] Не формируйте формы множественного числа, проверяя `count === 1` или добавляя `s`; это применимо только к английской грамматике. Передайте количество как [`n`](/docs/react/reference/components/plural#n), затем укажите формы, используемые в вашем языке-источнике. [``](/docs/react/reference/components/plural) выбирает правильную форму согласно [правилам множественного числа Unicode CLDR](https://cldr.unicode.org/index/cldr-spec/plural-rules) для активной локали. ```tsx import { T, Plural, Num } from 'gt-react'; You have {count} message.} other={<>You have {count} messages.} /> ; ``` ```tsx import { T, Plural, Num } from 'gt-next'; You have {count} message.} other={<>You have {count} messages.} /> ; ``` ```tsx import { T, Plural, Num } from 'gt-tanstack-start'; You have {count} message.} other={<>You have {count} messages.} /> ; ``` ```tsx import { T, Plural, Num } from 'gt-react-native'; You have {count} message.} other={You have {count} messages.} /> ; ``` Укажите [`категории множественного числа`](/docs/react/reference/components/plural#form), используемые в вашем языке-источнике; для английского обычно это `one` и `other`. Переводчики укажут категории, необходимые для каждого целевого языка, например `zero`, `two`, `few` и `many`. Если точная категория недоступна, [``](/docs/react/reference/components/plural) использует ветвь `plural`, затем `other`. [`children`](/docs/react/reference/components/plural#children) отображается, только если отсутствуют обе универсальные ветви: ```tsx One result}> {count} results ; ``` ## Ветвление по значению с помощью `` [#branch] Используйте [``](/docs/react/reference/components/branch), когда содержимое зависит от значения, а не от количества. Передайте значение в [`branch`](/docs/react/reference/components/branch#branch), добавьте [prop для каждого ожидаемого значения](/docs/react/reference/components/branch#value) и используйте [`children`](/docs/react/reference/components/branch#children) в качестве резервного варианта. ```tsx Upgrade to unlock more.

} pro={

Thanks for going Pro!

} >

Welcome.

; ``` Каждая ветвь переводится отдельно, поэтому переводчики могут адаптировать её формулировку целиком, не подстраиваясь под встроенное условие JavaScript. ### Заменяйте условные выражения внутри `` Встроенный тернарный оператор делает дочерние элементы [``](/docs/react/reference/components/t) динамическими и мешает надёжному извлечению. Представьте то же условие с помощью [``](/docs/react/reference/components/branch): ```tsx // ❌ Inline-условие {isActive ? 'Active' : 'Inactive'}; // ✅ Переводимые ветки Inactive ; ``` *Примечание: [``](/docs/react/reference/components/branch) игнорирует атрибуты `data-*`, поскольку незарезервированные пропсы используются как значения ветвей. Добавляйте тестовые ID и другие атрибуты данных к элементу-обёртке; правило линтера [`no-data-attrs-on-branch`](/docs/react/reference/lint-rules#no-data-attrs) выявляет эту ошибку.* ## Next steps - /docs/react/guides/formatting-variables - /docs/react/guides/translating-jsx - /docs/react/guides/translating-strings - /docs/react/guides/translating-with-dictionaries