# General Translation Python SDKs: Declarar variables y variantes URL: https://generaltranslation.com/es/docs/python/guides/declaring-variables.mdx --- title: Declarar variables y variantes description: Cómo preservar valores dinámicos y generar variantes finitas con `declare_var`, `derive` y `decode_vars` de General Translation en Python. related: links: - /docs/python/guides/translating-strings - /docs/python/guides/detecting-locale - /docs/python/guides/configuring - /docs/python/guides/storing-translations --- Algunos valores dentro de una cadena traducida no deben traducirse. El SDK de Python te ofrece dos marcadores para ello: [`declare_var`](/docs/python/reference/functions/declare-var) para valores realmente dinámicos, y [`derive`](/docs/python/reference/functions/derive) para un valor con un conjunto pequeño y fijo de resultados posibles. ## Conserva un valor dinámico con `declare_var` [#declare-var] Envuelve un valor de runtime —un nombre de usuario, un correo electrónico o una cantidad— con `declare_var` para que quede incrustado en el mensaje y se conserve en lugar de traducirse. Devuelve una construcción ICU `{_gt_, select, ...}` que se coloca dentro de una llamada a [`t`](/docs/python/reference/functions/t). ```python from gt_flask import t, declare_var t(f"Signed in as {declare_var(email, name='email')}") ``` El `name` opcional es una etiqueta descriptiva de la variable, útil para los traductores y para [`decode_vars`](/docs/python/reference/functions/decode-vars). ## Genera variantes finitas con `derive` [#derive] Cuando una frase incorpora un valor con un conjunto pequeño y fijo de resultados posibles, no basta con traducirla una sola vez: en otros idiomas, las palabras que la rodean se flexionan de manera distinta según cada resultado. `derive` marca ese valor para que la CLI genere una traducción independiente para cada variante. En tiempo de ejecución, `derive` devuelve la entrada sin cambios; en el momento de la extracción, la CLI produce una entrada por resultado. ```python from gt_flask import t, derive gender = "male" t(f"The {derive('boy' if gender == 'male' else 'girl')} is playing.") # Genera: "The boy is playing." y "The girl is playing." ``` Cada variante se traduce de forma independiente, por lo que cada versión suena natural en todos los idiomas. *Nota: Mantén reducido el conjunto de resultados derivados. Cada llamada adicional a `derive` multiplica el número de entradas generadas.* ## Combina ambos [#combine] Dentro de una oración derivada, aún puedes incrustar un valor realmente dinámico con `declare_var` para conservarlo en lugar de traducirlo. ```python from gt_flask import t, derive, declare_var t(f"{declare_var(name, name='name')} adopted a {derive('cat' if is_cat else 'dog')}.") ``` ## Recupera valores incrustados con `decode_vars` [#decode] [`decode_vars`](/docs/python/reference/functions/decode-vars) reemplaza las construcciones `{_gt_, select, other {value}}` de una cadena por sus valores incrustados; es útil cuando necesitas recuperar la cadena sin formato, ya completada, a partir de una marcada. ```python from gt_i18n import declare_var, decode_vars marked = f"Signed in as {declare_var('a@b.com', name='email')}" decode_vars(marked) # "Sesión iniciada como a@b.com" ``` *Nota: [`declare_static`](/docs/python/reference/functions/declare-static) es un alias en desuso de `derive` que se mantiene por compatibilidad con versiones anteriores. Usa `derive` en el código nuevo.* ## Next steps - /docs/python/guides/translating-strings - /docs/python/guides/detecting-locale - /docs/python/guides/configuring - /docs/python/guides/storing-translations