# General Translation Python SDKs: interpolate_message
URL: https://generaltranslation.com/es/docs/python/reference/functions/interpolate-message.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Interpola variables en una cadena con formato de mensajes ICU en General Translation Python. Referencia de la API de interpolate_message.

`interpolate_message` es el formateador de bajo nivel en el que se basan [`t`](/docs/python/reference/functions/t) y [`t_fallback`](/docs/python/reference/functions/t-fallback). Rellena una cadena con formato de mensajes ICU con los valores de las variables y no realiza ninguna búsqueda de traducción.

## Descripción general [#overview]

Llama a `interpolate_message` con un mensaje, un diccionario de opciones y una configuración regional opcional. A diferencia de [`t`](/docs/python/reference/functions/t) y [`t_fallback`](/docs/python/reference/functions/t-fallback), las variables se pasan en un `diccionario` como argumento posicional, no como argumentos por palabra clave.

```python
from gt_i18n import interpolate_message

interpolate_message("Hello, {name}!", {"name": "Alice"})
```

Firma:

```python
interpolate_message(
    message: str,
    options: dict[str, object],
    locale: str | None = None,
) -> str
```

Importa `interpolate_message` desde `gt_i18n`. Los paquetes del framework no lo reexportan.

## Cómo funciona [#how-it-works]

* **Filtrado de variables.** Se eliminan las claves reservadas de GT de `options`, de modo que solo queden las variables del usuario.
* **Variables declaradas.** Extrae las variables `_gt_` declaradas del mensaje `__fallback` (source) y, si existe alguna, reduce los selects indexados del mensaje a referencias simples para que la traducción pueda reordenarlos.
* **Formato.** Formatea el mensaje con ICU MessageFormat usando las variables combinadas y luego aplica un límite de `_max_chars` cuando está configurado.
* **Manejo de errores.** Si se produce un error de formato, vuelve a intentarlo con el source `__fallback` (borrando `__fallback` para evitar un bucle); si no hay contenido alternativo, devuelve el mensaje sin procesar, con el límite aplicado cuando `_max_chars` está configurado.

## Parámetros [#parameters]

| Parámetro             | Descripción                                                 | Tipo                | Opcional | Predeterminado |
| --------------------- | ----------------------------------------------------------- | ------------------- | -------- | -------------- |
| [`message`](#message) | La cadena con formato de mensajes ICU que se va a interpolar. | `str`               | No       | —              |
| [`options`](#options) | Variables y opciones de GT como un diccionario.               | `dict[str, object]` | No       | —              |
| [`locale`](#locale)   | Configuración regional usada para el formateo de ICU.      | `str \| None`       | Sí       | `None`         |

### `message` [#message]

**Tipo** `str` · **Obligatorio**

La cadena con formato de mensajes ICU que se interpolará.

### `options` [#options]

**Tipo** `dict[str, object]` · **Obligatorio**

Variables del usuario más keys opcionales de GT: `_max_chars` para establecer un límite, y `__fallback` (el mensaje de origen), que se usa para resolver las variables `_gt_` declaradas y para reintentar en caso de error.

### `locale` [#locale]

**Tipo** `str | None` · **Opcional** · **Predeterminado** `None`

La configuración regional que se pasa al formateo de ICU (para números, fechas y reglas de pluralización).

## Devuelve [#returns]

**Tipo** `str`

La cadena interpolada, o el mensaje original/de contenido alternativo si falla el formateo.

## Ejemplo [#example]

```python
from gt_i18n import interpolate_message

interpolate_message("{greeting}, {name}!", {"greeting": "Hi", "name": "Bob"})
# → "Hi, Bob!"

# Mensaje traducido que hace referencia a variables declaradas en el origen por índice
interpolate_message("Bienvenido de nuevo, {_gt_1}!", {"__fallback": source})
```

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
