# 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)