# react-native: Componentes de uso de ramas URL: https://generaltranslation.com/es/docs/react-native/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 el renderizado condicional de contenido dentro de los componentes [``](/docs/react-native/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/react-native/api/components/branch): Contenido condicional según valores o estados * [``](/docs/react-native/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/react-native/api/components/t) para manejar la lógica condicional: ```jsx import { T, Branch, Plural, Num, Var } from 'gt-react-native'; 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 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/react-native/api/components/t) 2. **Proporcionan contenido alternativo** cuando las condiciones no coinciden con los valores esperados 3. **Permiten traducir** todas las variaciones posibles del contenido 4. **Aplican automáticamente las reglas de pluralización** según 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/react-native/api/components/branch) para cualquier caso de renderizado condicional en función de 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-native/api/components/plural) para contenido que cambia en función de 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

} />
``` ### Combinar 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 componentes de uso de ramas ### Reemplazar operadores ternarios Convierte la lógica condicional para usarla dentro de [``](/docs/react-native/api/components/t): ```jsx // ❌ No se puede usar un operador ternario en {isActive ?

Active user

:

Inactive user

}
// ✅ Usa Branch en su lugar Active user

} false={

Inactive user

} />
``` ### Manejar varias condiciones Reemplace 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 el manejo 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/react-native/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 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, recomendamos que el uso de ramas sea sencillo 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={} > ``` Consulta la [documentación de Unicode CLDR](https://cldr.unicode.org/index/cldr-spec/plural-rules) para obtener más información sobre las reglas de pluralización. ## Próximos pasos * [Guía de traducción de cadenas](/docs/react-native/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 la API: * [Componente ``](/docs/react-native/api/components/branch)