# General Translation Python SDKs: Traduire des chaînes URL: https://generaltranslation.com/fr/docs/python/guides/translating-strings.mdx --- title: Traduire des chaînes description: Comment traduire des chaînes avec des variables, du contexte et des options à l’aide des fonctions t et 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 fonction [`t`](/docs/python/reference/functions/t) traduit une chaîne selon le paramètre régional actif de la requête. Rédigez directement le texte dans votre langue source et interpolez les valeurs avec la syntaxe de message ICU. ## Traduire avec `t` [#t] Appelez `t` avec votre chaîne source. Passez les valeurs d’interpolation sous forme d’arguments nommés correspondant aux marqueurs ICU — pas sous forme de dictionnaire. ```python from gt_flask import t # ou : from gt_fastapi import t, ou : from gt_i18n import t t("Hello, world!") t("Hello, {name}!", name="Alice") ``` `t` calcule le hachage du message source, recherche une traduction mise en cache pour le paramètre régional actuel, interpole vos variables avec ICU MessageFormat et se rabat sur la chaîne source interpolée lorsqu’aucune traduction n’existe. Lorsque le paramètre régional actuel ne nécessite pas de traduction (par exemple, s’il correspond au paramètre régional par défaut), `t` ignore cette recherche et effectue uniquement l’interpolation. ## Ajouter du contexte et des options [#options] Les options réservées utilisent un trait de soulignement en préfixe afin de ne pas être traitées comme des variables d’interpolation. Toutes les trois influent sur le hachage du message ; en modifier une produit donc une entrée de traduction distincte. * `_context` — lever l’ambiguïté d’une chaîne qui a plusieurs sens. * `_id` — donner à une entrée un identifiant stable. * `_max_chars` — limiter le nombre de caractères de la traduction. ```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) ``` *Remarque : une variable utilisateur dont le nom commence par un seul caractère de soulignement (par exemple, `_name`) est tout de même transmise comme variable d’interpolation ; seules les clés réservées ci-dessus sont filtrées.* ## Insérer des valeurs dynamiques [#variables] Pour une valeur qui ne doit pas être traduite — comme un nom d’utilisateur inséré dans une phrase — entourez-la de [`declare_var`](/docs/python/reference/functions/declare-var) afin qu’elle soit conservée d’une langue à l’autre. ```python from gt_flask import t, declare_var t(f"Signed in as {declare_var(email, name='email')}") ``` Voir [Déclaration des variables et des variantes](/docs/python/guides/declaring-variables) pour `declare_var`, [`derive`](/docs/python/reference/functions/derive) et les fonctions utilitaires associées. ## Enregistrer un message pour une utilisation ultérieure [#msg] Utilisez [`msg`](/docs/python/reference/functions/msg) pour associer des options de traduction à une chaîne dès maintenant et la résoudre plus tard, par exemple lorsque vous construisez un message à un endroit et l’affichez à un autre. Sans options, `msg` renvoie le message tel quel ; avec des options, il renvoie une chaîne encodée `{interpolated}:{base64options}` que [`m_fallback`](/docs/python/reference/functions/m-fallback) peut ensuite décoder. ```python from gt_i18n import msg, m_fallback encoded = msg("Save", _context="button") # ... plus tard, au moment du rendu : m_fallback(encoded) ``` ## Next steps - /docs/python/guides/declaring-variables - /docs/python/guides/detecting-locale - /docs/python/guides/storing-translations - /docs/python/guides/configuring