# gt-react: General Translation React SDK: componente de bifurcación
URL: https://generaltranslation.com/es/docs/react/guides/branches.mdx
---
title: componente de bifurcación
description: Cómo usar componentes de bifurcación para contenido condicional en las traducciones
---
{/* GENERADO AUTOMÁTICAMENTE: No edites esto directamente. Edita la plantilla en content/docs-templates/. */}
Los componentes de bifurcación permiten el renderizado condicional de contenido dentro de los componentes [``](/docs/react/api/components/t). Manejan lógica dinámica, como sentencias if/else y reglas de pluralización, y garantizan que todas las variaciones del contenido puedan traducirse correctamente.
## Componentes disponibles
* [``](/docs/react/api/components/branch): Contenido condicional según valores o estados
* [``](/docs/react/api/components/plural): Pluralización automática según reglas específicas de la configuración regional
## inicio rápido
Los componentes de bifurcación funcionan dentro de [``](/docs/react/api/components/t) para manejar la lógica condicional:
```jsx
import { T, Branch, Plural, Num, Var } from 'gt-react';
function NotificationPanel({ user, messageCount }) {
return (
{user.name} is currently online
}
away={{user.name} is away
}
>
{user.name} status unknown
You have {messageCount} message}
other={You have {messageCount} messages
}
/>
);
}
```
## Cómo funcionan los componentes de bifurcación
Los componentes de bifurcación resuelven el renderizado condicional en las traducciones mediante lo siguiente:
1. **Reemplazar los operadores ternarios** y la lógica condicional dentro de [``](/docs/react/api/components/t)
2. **Proporcionar contenido alternativo** cuando las condiciones no coinciden con los valores esperados
3. **Permitir la traducción** de todas las posibles variaciones de contenido
4. **Aplicar automáticamente las reglas de la configuración regional** para la pluralización
```jsx
// ❌ Esto falla - lógica condicional en
{isActive ? 'User is active' : 'User is inactive'}
// ✅ Esto funciona - lógica condicional con uso de ramas
User is active}
false={User is inactive
}
/>
```
## Guía de componentes
### Branch - Contenido condicional
Usa [``](/docs/react/api/components/branch) para cualquier caso de renderizado condicional basado en valores o estados:
```jsx
// Visualización del estado del usuario
Panel de control del administrador}
user={Panel de control del usuario
}
guest={Acceso de invitado
}
>
Nivel de acceso desconocido
// Condiciones booleanas
¡Bienvenido de nuevo!}
false={Por favor, inicia sesión
}
/>
// Niveles de suscripción
Actualiza tu plan para desbloquear funcionalidades premium}
premium={Disfruta de tu experiencia premium
}
enterprise={Contacta con soporte para soluciones Enterprise
}
>
Estado de suscripción no disponible
```
### Plural - Pluralización inteligente
Usa [``](/docs/react/api/components/plural) para contenido que cambia según la cantidad:
```jsx
// Pluralización básica
{itemCount} item in cart}
other={{itemCount} items in cart
}
/>
// Manejo del cero
No new notifications}
one={{notifications} notification
}
other={{notifications} notifications
}
/>
// Pluralización compleja (sigue las reglas Unicode CLDR)
Due today}
one={Due in {days} day
}
few={Due in {days} days
}
many={Due in {days} days
}
other={Due in {days} days
}
/>
```
### Combinación con componentes de variable
El uso de ramas y los componentes de variable se integran a la perfección:
```jsx
Order {order.id} is pending.
Total: {order.total}
}
shipped={
Order {order.id} shipped on {order.shippedDate}
}
delivered={
Order {order.id} was delivered successfully
}
>
Order status unknown
```
## Cuándo usar componentes de bifurcación
### Reemplaza operadores ternarios
Convierte la lógica condicional para usarla con [``](/docs/react/api/components/t):
```jsx
// ❌ No se puede usar el operador ternario en
{isActive ? Active user
: Inactive user
}
// ✅ Usa Branch en su lugar
Active user}
false={Inactive user
}
/>
```
### Maneja múltiples condiciones
Reemplaza las sentencias `switch` o varias condiciones `if/else`:
```jsx
// ❌ Lógica condicional compleja
{status === 'loading' ? Loading...
:
status === 'error' ? Error occurred
:
status === 'success' ? Success!
:
Unknown status
}
// ✅ Lógica de uso de ramas limpia
Loading...}
error={Error occurred
}
success={Success!
}
>
Unknown status
```
### Reglas de pluralización
Reemplaza la gestión manual de los plurales:
```jsx
// ❌ Pluralización manual
{count === 1 ? 1 item
: {count} items
}
// ✅ Pluralización automática
{count} item}
other={{count} items
}
/>
```
## Uso independiente
Los componentes de bifurcación pueden usarse fuera de [``](/docs/react/api/components/t) para lógica pura, sin traducción:
```jsx
// Renderizado condicional puro
}
light={}
>
// Pluralización pura
}
other={}
/>
```
## Problemas comunes
### Claves de rama faltantes
Proporciona siempre contenido alternativo para los valores sin coincidencia:
```jsx
// ❌ Sin alternativa para valores inesperados
}
user={}
// ¿Qué pasa si userRole es "moderator"?
/>
// ✅ Incluye siempre una alternativa
}
user={}
>
{/* Alternativa para cualquier otro valor */}
```
### Formas de plural incompletas
Proporciona las formas de plural necesarias para tu configuración regional predeterminada:
```jsx
// ❌ Falta la forma "other"
1 item}
// ¿Y qué pasa con 0, 2, 3, etc.?
/>
// ✅ Incluir las formas necesarias
No items}
one={1 item
}
other={{count} items
}
/>
```
### Lógica anidada compleja
Aunque esto funciona, recomendamos que el uso de ramas sea sencillo y evitar el anidamiento profundo:
```jsx
// ❌ Uso de ramas anidadas complejo
{/* Difícil de leer y mantener */}
// ✅ Simplifica la lógica o usa múltiples componentes
}
active-offline={}
inactive-online={}
>
```
Obtener más información sobre las reglas de pluralización en la [documentación de Unicode CLDR](https://cldr.unicode.org/index/cldr-spec/plural-rules).
## Próximos pasos
* [Guía de traducción de cadenas](/docs/react/guides/strings) - Traduce texto sin formato sin JSX
* [Guía de contenido dinámico](/docs/key-concepts/dynamic-content) - Maneja la traducción en tiempo de ejecución
* Referencias de API:
* [Componente ``](/docs/react/api/components/branch)