# gt-next: General Translation Next.js SDK: Componentes de uso de ramas
URL: https://generaltranslation.com/es/docs/next/guides/branches.mdx
---
title: Componentes de uso de ramas
description: Cómo usar componentes de uso de ramas para contenido condicional en las traducciones
---
{/* GENERADO AUTOMÁTICAMENTE: No edites esto directamente. Edita la plantilla en content/docs-templates/. */}
Los componentes de uso de ramas permiten renderizar contenido de forma condicional dentro de los componentes [``](/docs/next/api/components/t). Manejan lógica dinámica, como sentencias if/else y reglas de pluralización, y garantizan que todas las variaciones de contenido puedan traducirse correctamente.
## Componentes disponibles
* [``](/docs/next/api/components/branch): Contenido condicional en función de valores o estados
* [``](/docs/next/api/components/plural): Pluralización automática mediante reglas específicas de la configuración regional
## Inicio rápido
Los componentes de uso de ramas se usan dentro de [``](/docs/next/api/components/t) para manejar lógica condicional:
```jsx
import { T, Branch, Plural, Num, Var } from 'gt-next';
function NotificationPanel({ user, messageCount }) {
return (
{user.name} está en línea
}
away={{user.name} está ausente
}
>
Estado de {user.name} desconocido
Tienes {messageCount} mensaje}
other={Tienes {messageCount} mensajes
}
/>
);
}
```
## Cómo funcionan los componentes de uso de ramas
Los componentes de uso de ramas resuelven el renderizado condicional dentro de las traducciones de la siguiente manera:
1. **Reemplazan los operadores ternarios** y la lógica condicional dentro de [``](/docs/next/api/components/t)
2. **Proporcionan contenido alternativo** cuando las condiciones no coinciden con los valores esperados
3. **Permiten traducir** todas las posibles variaciones de contenido
4. **Siguen automáticamente las reglas de pluralización de la configuración regional**
```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/next/api/components/branch) para cualquier caso de renderizado condicional basado en valores o estados:
```jsx
// Visualización del estado del usuario
Administrator Dashboard}
user={User Dashboard
}
guest={Guest Access
}
>
Access level unknown
// Condiciones booleanas
Welcome back!}
false={Please log in
}
/>
// Niveles de suscripción
Upgrade to unlock premium features}
premium={Enjoy your premium experience
}
enterprise={Contact support for enterprise solutions
}
>
Subscription status unavailable
```
### Plural - Pluralización inteligente
Usa [``](/docs/next/api/components/plural) para contenido que cambia según la cantidad:
```jsx
// Pluralización básica
{itemCount} artículo en el carrito}
other={{itemCount} artículos en el carrito
}
/>
// Manejo del cero
Sin notificaciones nuevas}
one={{notifications} notificación
}
other={{notifications} notificaciones
}
/>
// Pluralización compleja (sigue las reglas Unicode CLDR)
Vence hoy}
one={Vence en {days} día
}
few={Vence en {days} días
}
many={Vence en {days} días
}
other={Vence en {days} días
}
/>
```
### Combinación con componentes de variable
El uso de ramas y los componentes de variable se integran sin problemas:
```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 el componente de uso de ramas
### Reemplazar operadores ternarios
Convierte la lógica condicional para usarla dentro de [``](/docs/next/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 del plural:
```jsx
// ❌ Pluralización manual
{count === 1 ? 1 item
: {count} items
}
// ✅ Pluralización automática
{count} item}
other={{count} items
}
/>
```
## Uso independiente
Los componentes de uso de ramas pueden usarse fuera de [``](/docs/next/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 que no coincidan:
```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 mantener sencilla la lógica de uso de ramas y evitar un 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/next/guides/strings) - Traduce texto sin formato sin JSX
* [Guía de contenido dinámico](/docs/key-concepts/dynamic-content) - Gestiona la traducción en tiempo de ejecución
* Referencias de la API:
* [Componente ``](/docs/next/api/components/branch)