# gt-react: General Translation React SDK: Componentes de ramificación URL: https://generaltranslation.com/es/docs/react/guides/branches.mdx --- title: Componentes de ramificación description: Cómo usar componentes de ramificación para contenido condicional en las traducciones --- {/* GENERADO AUTOMÁTICAMENTE: No edites esto directamente. En su lugar, edita el template en content/docs-templates/. */} Los componentes de ramificación permiten mostrar contenido condicional dentro de los componentes [``](/docs/react/api/components/t). Gestionan lógica dinámica, como condiciones if/else y reglas de pluralización, y garantizan que todas las variaciones de contenido puedan traducirse correctamente. ## Componentes disponibles * [``](/docs/react/api/components/branch): Contenido condicional en función de 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 ramificación funcionan dentro de [``](/docs/react/api/components/t) para gestionar 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 ramificación Los componentes de ramificación 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/react/api/components/t) 2. **Proporcionan contenido de reserva** cuando las condiciones no coinciden con los valores esperados 3. **Permiten traducir** todas las posibles variaciones de contenido 4. **Aplican automáticamente las reglas de la configuración regional** para la pluralización ```jsx // ❌ Esto falla - lógica condicional dentro de

{isActive ? 'User is active' : 'User is inactive'}

// ✅ Esto funciona - lógica condicional con branching User is active

} false={

User is inactive

} />
``` ## Guía de componentes ### Branch - Contenido condicional Usa [``](/docs/react/api/components/branch) para renderizar contenido de forma condicional según 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/react/api/components/plural) para contenido que cambia en función de 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 Los componentes de ramificación y de variable se integran perfectamente: ```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 ramificación ### Reemplaza los operadores ternarios Convierte la lógica condicional para usarla dentro de [``](/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

} />
``` ### Gestiona múltiples condiciones Sustituye 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 branch 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 autónomo Los componentes de ramificació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 ### Faltan claves de branch Proporciona siempre contenido de reserva para los valores sin coincidencia: ```jsx // ❌ Sin contenido de reserva para valores inesperados } user={} // ¿Qué pasa si userRole es "moderator"? /> // ✅ Incluir siempre un contenido de reserva } user={} > {/* contenido de reserva para cualquier otro valor */} ``` ### Formas plurales incompletas Proporciona las formas plurales 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, te recomendamos mantener simple la lógica de branch y evitar un anidamiento profundo: ```jsx // ❌ Anidamiento complejo de branches {/* Difícil de leer y mantener */} // ✅ Aplana la lógica o usa múltiples componentes } active-offline={} inactive-online={} > ``` 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). ## Siguientes pasos * [Guía de traducción de cadenas](/docs/react/guides/strings) - Traduce texto sin formato sin usar JSX * [Guía de contenido dinámico](/docs/key-concepts/dynamic-content) - Gestiona la traducción en runtime * Referencias de la API: * [Componente ``](/docs/react/api/components/branch)