# General Translation Python SDKs: Configurer General Translation
URL: https://generaltranslation.com/fr/docs/python/guides/configuring.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Comment initialiser General Translation en Python avec votre application, les paramètres régionaux et la livraison des traductions dans Flask, FastAPI ou la bibliothèque principale.

Le SDK Python se configure via un seul appel. Dans Flask et FastAPI, il s’agit de `initialize_gt(app)` ; avec la bibliothèque principale `gt-i18n`, vous créez vous-même un [`I18nManager`](/docs/python/reference/classes/i18n-manager). Ce guide présente les deux approches, ainsi que la façon dont les traductions sont livrées et préchargées.

## Configurer une application Flask ou FastAPI [#framework]

Appelez `initialize_gt(app)` une seule fois, avant de commencer à traiter les requêtes. Cette fonction lit `gt.config.json`, crée le gestionnaire de traduction, enregistre la détection du paramètre régional pour chaque requête et précharge les traductions.

<Tabs items={['Flask', 'FastAPI']}>
  <Tab value="Flask">
    ```python title="app.py"
    from flask import Flask
    from gt_flask import initialize_gt

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

  <Tab value="FastAPI">
    ```python title="main.py"
    from fastapi import FastAPI
    from gt_fastapi import initialize_gt

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

Les arguments nommés priment sur `gt.config.json`. Consultez la [référence de configuration](/docs/python/reference/config) pour voir toutes les options et clés de configuration.

Les deux intégrations partagent la même signature [`initialize_gt`](/docs/python/reference/functions/initialize-gt) ; seule leur implémentation interne diffère. Flask enregistre un hook `before_request` qui définit le paramètre régional ; FastAPI encapsule le cycle de vie de l’application (pour le préchargement) et ajoute un middleware HTTP qui définit le paramètre régional.

## Configurer la bibliothèque principale [#core]

Le package principal `gt-i18n` n’inclut pas [`initialize_gt`](/docs/python/reference/functions/initialize-gt). Créez un [`I18nManager`](/docs/python/reference/classes/i18n-manager), enregistrez-le comme gestionnaire actif avec [`set_i18n_manager`](/docs/python/reference/functions/set-i18n-manager), puis définissez vous-même le paramètre régional de la requête. La détection du paramètre régional et le préchargement ne sont pas automatiques ici.

```python
from gt_i18n import I18nManager, set_i18n_manager, t

manager = I18nManager(default_locale="en", locales=["es", "fr"])
set_i18n_manager(manager)

manager.set_locale("es")   # vous gérez le paramètre régional par requête
print(t("Hello, world!"))
```

Toute fonction de traduction ([`t`](/docs/python/reference/functions/t), [`get_locale`](/docs/python/reference/functions/get-locale), etc.) utilise le gestionnaire défini avec [`set_i18n_manager`](/docs/python/reference/functions/set-i18n-manager). En appeler une avant qu’un gestionnaire ne soit défini déclenche une `RuntimeError`.

## Choisissez comment les traductions sont livrées [#delivery]

Le SDK récupère les traductions selon l’un des modes suivants :

* **General Translation CDN:** définissez `project_id` (dans la configuration ou comme argument nommé) pour que les traductions soient chargées depuis le CDN à l’adresse `{cache_url}/{project_id}/{locale}`. Vous pouvez remplacer l’URL de base avec `cache_url`.
* **Fichiers locaux :** passez un callback `load_translations` qui renvoie un `dict[str, str]` pour un paramètre régional. Cela remplace le loader du CDN. Voir [Storing translations locally](/docs/python/guides/storing-translations).

Il n’y a pas de clé API. La livraison via le CDN repose entièrement sur `project_id` et `cache_url`.

## Précharger les traductions [#preload]

La fonction [`t`](/docs/python/reference/functions/t) lit les traductions depuis un cache en mémoire. Elles doivent donc être chargées avant d&#39;être utilisées par une requête. Par défaut, [`initialize_gt`](/docs/python/reference/functions/initialize-gt) les précharge au démarrage (`eager_loading=True`).

*Remarque : le préchargement ne s&#39;effectue que lorsque les `locales` cibles sont connues. Avec Flask, les `locales` prises en compte sont celles que vous transmettez directement à [`initialize_gt`](/docs/python/reference/functions/initialize-gt), et non celles chargées depuis `gt.config.json` : si vos paramètres régionaux proviennent uniquement du fichier de configuration, transmettez-les explicitement ou chargez vous-même les traductions. Si les traductions ne sont pas encore chargées, [`t`](/docs/python/reference/functions/t) renvoie la chaîne source.*

*Remarque : le cache en mémoire expire après `cache_expiry_time` (60 secondes par défaut), et le chemin de lecture synchrone utilisé par [`t`](/docs/python/reference/functions/t) ne le recharge pas : après son expiration, [`t`](/docs/python/reference/functions/t) revient aux chaînes sources jusqu&#39;à la prochaine exécution du chargeur asynchrone. [`initialize_gt`](/docs/python/reference/functions/initialize-gt) n&#39;expose pas `cache_expiry_time`.*

## Gérer les traductions manquantes [#missing]

Lorsqu’une traduction manque, [`t`](/docs/python/reference/functions/t) renvoie la chaîne source interpolée avec vos variables au lieu de lever une erreur, de sorte qu’un rendu est toujours produit pour chaque requête. Générez les traductions avec la [CLI](/docs/cli/quickstart) avant le déploiement afin qu’elles soient prêtes en production.

## Next steps

- /docs/python/guides/translating-strings
- /docs/python/guides/detecting-locale
- /docs/python/guides/declaring-variables
- /docs/python/guides/storing-translations

## Sitemap

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