# General Translation Python SDKs: interpolate_message
URL: https://generaltranslation.com/fr/docs/python/reference/functions/interpolate-message.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Interpoler des variables dans une chaîne ICU MessageFormat dans General Translation Python. Référence de l’API pour interpolate_message.

`interpolate_message` est le formateur de bas niveau sur lequel reposent [`t`](/docs/python/reference/functions/t) et [`t_fallback`](/docs/python/reference/functions/t-fallback). Il remplit une chaîne ICU MessageFormat avec des valeurs de variables et n’effectue aucune recherche de traduction.

## Vue d’ensemble [#overview]

Appelez `interpolate_message` avec un message, un dictionnaire d’options et un paramètre régional facultatif. Contrairement à [`t`](/docs/python/reference/functions/t) et [`t_fallback`](/docs/python/reference/functions/t-fallback), les variables sont passées sous la forme d’un `dict` en argument positionnel, et non comme arguments nommés.

```python
from gt_i18n import interpolate_message

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

Signature :

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

Importez `interpolate_message` depuis `gt_i18n`. Il n’est pas réexporté par les packages du framework.

## Fonctionnement [#how-it-works]

* **Filtrage des variables.** Les clés GT réservées sont supprimées de `options`, de sorte qu’il ne reste que les variables utilisateur.
* **Variables déclarées.** La fonction extrait les variables `_gt_` déclarées du message `__fallback` (source) et, lorsqu’il y en a, ramène les sélections indexées du message à de simples références afin qu’une traduction puisse les réordonner.
* **Formatage.** Elle formate le message avec ICU MessageFormat à l’aide des variables combinées, puis applique une limite `_max_chars` lorsqu’elle est définie.
* **Gestion des erreurs.** En cas d’erreur de formatage, elle réessaie avec le message source `__fallback` (en vidant `__fallback` pour éviter une boucle) ; en l’absence de contenu de secours, elle renvoie le message brut, avec la limite appliquée lorsque `_max_chars` est défini.

## Paramètres [#parameters]

| Paramètre             | Description                                         | Type                | Facultatif | Par défaut |
| --------------------- | --------------------------------------------------- | ------------------- | ---------- | ---------- |
| [`message`](#message) | La chaîne ICU MessageFormat à interpoler.           | `str`               | Non        | —          |
| [`options`](#options) | Variables et options GT sous forme de dictionnaire. | `dict[str, object]` | Non        | —          |
| [`locale`](#locale)   | Paramètre régional utilisé pour le formatage ICU.   | `str \| None`       | Oui        | `None`     |

### `message` [#message]

**Type** `str` · **Obligatoire**

La chaîne au format ICU MessageFormat à interpoler.

### `options` [#options]

**Type** `dict[str, object]` · **Obligatoire**

Variables utilisateur, ainsi que des clés GT facultatives : `_max_chars` pour définir une limite, et `__fallback` (le message source), utilisés pour résoudre les variables `_gt_` déclarées et réessayer en cas d’erreur.

### `locale` [#locale]

**Type** `str | None` · **Facultatif** · **Par défaut** `None`

Le paramètre régional transmis au formatage ICU (pour les nombres, les dates et les règles de pluriel).

## Renvoie [#returns]

**Type** `str`

La chaîne interpolée, ou le message brut/contenu de secours si le formatage échoue.

## Exemple [#example]

```python
from gt_i18n import interpolate_message

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

# Message traduit qui référence les variables déclarées dans la source par index
interpolate_message("Bienvenido de nuevo, {_gt_1}!", {"__fallback": source})
```

## Sitemap

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