# General Translation Python SDKs: Traducir cadenas URL: https://generaltranslation.com/es/docs/python/guides/translating-strings.mdx --- title: Traducir cadenas description: Cómo traducir cadenas con variables, contexto y opciones usando las funciones t y msg de General Translation en Python. related: links: - /docs/python/guides/declaring-variables - /docs/python/guides/detecting-locale - /docs/python/guides/storing-translations - /docs/python/guides/configuring --- La función [`t`](/docs/python/reference/functions/t) traduce una cadena a la configuración regional activa de la solicitud. Escribe directamente en tu idioma de origen e intercala valores con la sintaxis de mensajes ICU. ## Traduce con `t` [#t] Llama a `t` con tu cadena de origen. Pasa los valores de interpolación como argumentos de palabra clave que coincidan con los marcadores de posición de ICU, no como un `dict`. ```python from gt_flask import t # o bien: from gt_fastapi import t, o bien: from gt_i18n import t t("Hello, world!") t("Hello, {name}!", name="Alice") ``` `t` aplica un hash al mensaje fuente, busca una traducción en caché para la configuración regional actual, interpola tus variables con ICU MessageFormat y, si no existe ninguna traducción, recurre a la cadena fuente interpolada. Cuando la configuración regional actual no requiere traducción (por ejemplo, si coincide con la configuración regional predeterminada), `t` omite la búsqueda y solo interpola. ## Agrega contexto y opciones [#options] Las opciones reservadas usan un guion bajo inicial para que no se interpreten como variables de interpolación. Las tres afectan el hash del mensaje, así que cambiar una genera una entrada de traducción distinta. * `_context` — desambigua una cadena que tiene más de un significado. * `_id` — asigna a una entrada un identificador estable. * `_max_chars` — limita la cantidad de caracteres de la traducción. ```python t("Bank", _context="the edge of a river") t("Welcome", _id="home.hero.title") t("This is a long message that may need truncation", _max_chars=20) ``` *Nota: una variable de usuario cuyo nombre comienza con un solo guion bajo (por ejemplo, `_name`) sigue pasándose como variable de interpolación; solo se filtran las claves reservadas indicadas arriba.* ## Inserta valores dinámicos [#variables] Para un valor que no deba traducirse —como un nombre de usuario insertado en una frase—, envuélvelo con [`declare_var`](/docs/python/reference/functions/declare-var) para que se preserve en todos los idiomas. ```python from gt_flask import t, declare_var t(f"Signed in as {declare_var(email, name='email')}") ``` Consulta [Declaración de variables y variantes](/docs/python/guides/declaring-variables) para obtener más información sobre `declare_var`, [`derive`](/docs/python/reference/functions/derive) y otras funciones auxiliares relacionadas. ## Registra un mensaje para usarlo más tarde [#msg] Usa [`msg`](/docs/python/reference/functions/msg) para adjuntar opciones de traducción a una cadena ahora y procesarla más tarde, por ejemplo, cuando construyes un mensaje en un lugar y lo renderizas en otro. Sin opciones, `msg` devuelve el mensaje sin cambios; con opciones, devuelve una cadena codificada `{interpolated}:{base64options}` que [`m_fallback`](/docs/python/reference/functions/m-fallback) puede decodificar más adelante. ```python from gt_i18n import msg, m_fallback encoded = msg("Save", _context="button") # ... más tarde, al momento de renderizar: m_fallback(encoded) ``` ## Next steps - /docs/python/guides/declaring-variables - /docs/python/guides/detecting-locale - /docs/python/guides/storing-translations - /docs/python/guides/configuring