# gt-next: General Translation Next.js SDK: Componentes de variable URL: https://generaltranslation.com/es/docs/next/guides/variables.mdx --- title: Componentes de variable description: Cómo usar componentes de variable para contenido dinámico en las traducciones --- {/* GENERADO AUTOMÁTICAMENTE: No edites esto directamente. En su lugar, edita la plantilla en content/docs-templates/. */} Los componentes de variable te permiten incluir de forma segura contenido dinámico dentro de los componentes [``](/docs/next/api/components/t). Se encargan del formato y la localización localmente, sin enviar datos a la API de traducción, por lo que son ideales para información sensible como nombres de usuario, números de cuenta y datos financieros. ## Componentes disponibles * [``](/docs/next/api/components/var): Contenido dinámico sin formato * [``](/docs/next/api/components/num): Números con formato según la configuración regional * [``](/docs/next/api/components/currency): Valores monetarios con símbolos y formato * [``](/docs/next/api/components/datetime): Fechas y horas según las convenciones de la configuración regional ## Inicio rápido Los componentes de variable se usan dentro de [``](/docs/next/api/components/t) para gestionar contenido dinámico: ```jsx import { T, Var, Num, Currency, DateTime } from 'gt-next'; function UserProfile({ user }) { return (

Welcome back, {user.name}!

You have {user.itemCount} items.

Balance: {user.balance}

Last login: {user.lastLogin}

); } ``` ## Cómo funcionan los componentes de variable Los componentes de variable resuelven el problema del contenido dinámico de la siguiente forma: 1. **Envuelven valores dinámicos** para poder usarlos dentro de [``](/docs/next/api/components/t) 2. **Gestionan el formato localmente** con las API de i18n integradas del navegador 3. **Mantienen la privacidad de los datos**: el contenido nunca se envía a la API de traducción 4. **Proporcionan localización** según la configuración regional actual del usuario ```jsx // ❌ Esto falla - contenido dinámico en

Hello {username}

// ✅ Esto funciona - contenido dinámico envuelto

Hello {username}

``` ## Guía de componentes ### Var - Contenido dinámico sin formato Usa [``](/docs/next/api/components/var) para cualquier contenido dinámico que no requiera un formato especial: ```jsx // Información del usuario

Hello, {user.name}!

Your account ID is {user.accountId}

// Renderizado condicional Dashboard: {isAdmin ? : } ``` ### Num - Números con formato Usa [``](/docs/next/api/components/num) para números que deban seguir las reglas de formato de la configuración regional: ```jsx // Formato numérico básico You have {itemCount} items in your cart. // Uso autónomo (equivalente a number.toLocaleString()) {totalItems} // Opciones de formato personalizadas Distance: {distance} km ``` ### Currency - Valores de dinero Usa [``](/docs/next/api/components/currency) para importes monetarios: ```jsx // Formato de moneda básico (por defecto "USD") Your total is {total}. // Diferentes monedas Price: {price} // Formato personalizado {roundedAmount} ``` ### DateTime - Fechas y horas Usa [``](/docs/next/api/components/datetime) para las fechas y horas: ```jsx // Formato de fecha básico Order placed on {orderDate} // Formato de hora Last updated: {timestamp} // Formato de fecha personalizado {eventDate} ``` ## Privacidad y seguridad ### Los datos permanecen en local Los componentes de variable se encargan de todo el formateo localmente mediante las [API de Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl) del navegador. **No se envía contenido dinámico a la API de traducción**, por lo que son perfectos para: * Nombres e información personal * Números de cuenta e identificadores * Datos financieros y saldos * Marcas temporales y fechas privadas ```jsx // Seguro - los datos sensibles permanecen en local Account balance: {balance} Last login: {lastLoginTime} ``` ### Excepción importante Ten cuidado con los componentes [``](/docs/next/api/components/t) anidados dentro de los componentes de variable: ```jsx // ⚠️ El contenido interno de SÍ será enviado para traducción Hello, world! {/* Esto se traduce */} {privateData} {/* Esto permanece local */} ``` ## Uso autónomo Los componentes de variable se pueden usar fuera de [``](/docs/next/api/components/t) para formatear: ```jsx // Funcionan como sus respectivos métodos .toLocale*() {count} // count.toLocaleString() {price} // formato de precio {date} // date.toLocaleDateString() ``` ## Problemas comunes ### Ignorar las opciones de localización Para [``](/docs/next/api/components/currency), asegúrate de pasar la prop `currency` para especificar el tipo de moneda. Esto garantiza que se utilicen el símbolo de moneda y el formato correctos al mostrar el valor: ```jsx // ❌ Usa USD por defecto - puede que no sea lo que los usuarios esperan The item costs {price} // ✅ Especifica la moneda de forma explícita The item costs {price} ``` Otros componentes también tienen props opcionales que te permiten personalizar el formato: ```jsx // Formato básico {count} artículos en stock // Formato personalizado {percentage} tasa de finalización // Formato de fecha Última actualización: {lastUpdate} ``` ## Próximos pasos * [Guía de componentes con bifurcación](/docs/next/guides/branches) - Agrega lógica condicional a tus traducciones * [Guía de traducción de cadenas](/docs/next/guides/strings) - Traduce texto plano sin JSX * Referencias de la API: * [Componente ``](/docs/next/api/components/var) * [Componente ``](/docs/next/api/components/num) * [Componente ``](/docs/next/api/components/currency)