# General Translation Python SDKs: Détecter le paramètre régional de la requête
URL: https://generaltranslation.com/fr/docs/python/guides/detecting-locale.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Comment déterminer automatiquement le paramètre régional de chaque requête, ou selon votre propre logique, dans General Translation pour Python.

Chaque appel à [`t`](/docs/python/reference/functions/t) traduit dans le paramètre régional de la requête en cours. [`initialize_gt`](/docs/python/reference/functions/initialize-gt) configure la détection du paramètre régional pour vous ; vous pouvez utiliser le comportement par défaut ou fournir votre propre callback.

## Utiliser la détection par défaut [#default]

Par défaut, le SDK lit l’en-tête `Accept-Language`, analyse ses valeurs de qualité et choisit la meilleure correspondance parmi les paramètres régionaux configurés, avec repli sur le paramètre régional par défaut. Flask le fait dans un hook `before_request` ; FastAPI le fait dans un middleware HTTP. Aucune configuration supplémentaire n’est nécessaire.

Récupérez le paramètre régional résolu à n’importe quel endroit d’une requête avec [`get_locale`](/docs/python/reference/functions/get-locale).

```python
from gt_flask import get_locale  # ou : from gt_fastapi import get_locale

get_locale()
```

## Fournir une détection personnalisée [#custom]

Pour tenir compte d’un choix explicite — paramètre de requête, cookie ou préfixe de chemin — transmettez un callback [`get_locale`](/docs/python/reference/functions/get-locale) à [`initialize_gt`](/docs/python/reference/functions/initialize-gt). Un callback personnalisé remplace entièrement la détection `Accept-Language` ; elle n’est pas utilisée si vous fournissez le vôtre.

<Tabs items={['Flask', 'FastAPI']}>
  <Tab value="Flask">
    ```python
    def detect_locale(request):
        return request.args.get("lang") or request.cookies.get("locale") or "en"

    initialize_gt(app, default_locale="en", locales=["es", "fr"], get_locale=detect_locale)
    ```
  </Tab>

  <Tab value="FastAPI">
    ```python
    def detect_locale(request):
        return request.query_params.get("lang") or request.cookies.get("locale") or "en"

    initialize_gt(app, default_locale="en", locales=["es", "fr"], get_locale=detect_locale)
    ```
  </Tab>
</Tabs>

La valeur que vous renvoyez est stockée telle quelle pour la requête. Si votre callback renvoie une valeur falsy comme `None`, le paramètre régional utilisé sera le paramètre régional par défaut configuré (et non `Accept-Language`) ; renvoyez donc un contenu de secours explicite si vous souhaitez un comportement différent.

*Remarque : contrairement à la détection `Accept-Language` intégrée, la valeur renvoyée par un callback personnalisé n’est pas revalidée par rapport aux `locales` configurées. Renvoyez un paramètre régional pris en charge, ou gérez vous-même les valeurs non prises en charge.*

## Next steps

- /docs/python/guides/translating-strings
- /docs/python/guides/configuring
- /docs/python/guides/declaring-variables
- /docs/python/guides/storing-translations

## Sitemap

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