# python: Approches de traduction de chaînes de caractères
URL: https://generaltranslation.com/fr/docs/python/guides/strings.mdx
---
title: Approches de traduction de chaînes de caractères
description: Traduction de chaînes de caractères en Python avec t(), msg(), des variables et derive()
---
Il existe deux façons de traduire des chaînes de caractères dans les bibliothèques Python de GT :
1. **En ligne avec `t()`** — traduisez directement les chaînes de caractères dans vos gestionnaires de routes
2. **Enregistrées préalablement avec `msg()`** — définissez les chaînes de caractères au niveau du module, puis résolvez-les à l’exécution
## Traduction en ligne avec `t()`
Utilisez [`t()`](/docs/python/api/t) pour traduire une chaîne de caractères selon le paramètre régional de la requête en cours :
```python
from gt_flask import t
@app.route('/api/greeting')
def greeting():
return { 'message': t('Hello, world!') }
```
```python
from gt_fastapi import t
@app.get('/api/greeting')
def greeting():
return { 'message': t('Hello, world!') }
```
## Chaînes de caractères enregistrées au préalable avec `msg()`
Utilisez [`msg()`](/docs/python/api/t) pour enregistrer des chaînes de caractères au niveau du module, puis appelez-les depuis les gestionnaires :
```python title="messages.py"
from gt_flask import msg # ou gt_fastapi
GREETING = msg('Hello, world!')
WELCOME = msg('Welcome, {name}!')
NOT_FOUND = msg('Resource not found.')
```
```python title="routes.py"
from messages import GREETING, WELCOME, NOT_FOUND
@app.route('/api/greeting')
def greeting():
return {
'greeting': GREETING(),
'welcome': WELCOME(name='Alice'),
}
@app.errorhandler(404)
def not_found(e):
return { 'error': NOT_FOUND() }, 404
```
`t()` et `msg()` produisent des traductions identiques. Utilisez `msg()` lorsque la même chaîne de caractères apparaît à plusieurs endroits, ou si vous souhaitez regrouper toutes les chaînes de caractères dans un seul fichier.
## Interpolation de variables
### Avec `t()`
Utilisez des placeholders `{name}` et passez les valeurs comme arguments nommés :
```python
t('Welcome, {name}!', name=user.display_name)
t('You have {count} new messages.', count=unread_count)
```
### Avec `declare_var()` et `decode_vars()`
Pour mieux maîtriser la gestion des variables, utilisez [`declare_var()`](/docs/python/api/declare-var) et [`decode_vars()`](/docs/python/api/decode-vars) :
```python
from gt_flask import declare_var, decode_vars
template = t('Hello, {name}! You have {count} items.')
result = decode_vars(template, {
'name': declare_var('name', 'Guest'),
'count': declare_var('count', 0),
})
```
## Utiliser `derive()` pour l’accord grammatical
[`derive()`](/docs/python/api/derive) génère des variantes grammaticalement correctes, utiles dans les langues où les mots changent de forme selon le contexte (genre, nombre, cas) :
```python
from gt_flask import t, derive
count = 3
item_word = derive('item', {'one': 'item', 'other': 'items'})
message = t('You have {count} {item}.', count=count, item=item_word)
```
Consultez le [tutoriel sur la dérivation](/docs/python/tutorials/derive) pour d’autres approches.
## Utiliser `$context` pour lever les ambiguïtés
Des chaînes de caractères ambiguës peuvent entraîner des traductions inexactes. Ajoutez `$context` pour guider le traducteur :
```python
t('Apple', context='the technology company')
t('Spring', context='the season, not a coil')
t('Bank', context='a financial institution')
# Fonctionne également avec msg()
APPLE = msg('Apple', context='the fruit')
```
## Étapes suivantes
* [`t()` référence API](/docs/python/api/t)
* [`declare_var()` référence API](/docs/python/api/declare-var)
* [`derive()` référence API](/docs/python/api/derive)
* [Détection du paramètre régional et middleware](/docs/python/guides/middleware) — fonctionnement du contexte du paramètre régional