# General Translation Python SDKs: I18nManager URL: https://generaltranslation.com/fr/docs/python/reference/classes/i18n-manager.mdx --- title: I18nManager description: L’orchestrateur central des locales, du chargement des traductions et de leur mise en cache dans General Translation Python. Référence de l’API pour I18nManager. --- L’objet central qui gère la configuration des locales, charge et met en cache les traductions, et assure le suivi du paramètre régional de la requête en cours. [`initialize_gt`](/docs/python/reference/functions/initialize-gt) en crée un pour vous ; dans la bibliothèque principale `gt-i18n`, vous le construisez directement et l’enregistrez avec [`set_i18n_manager`](/docs/python/reference/functions/set-i18n-manager). ## Vue d’ensemble [#overview] Créez un `I18nManager` en utilisant uniquement des arguments nommés, puis enregistrez-le comme gestionnaire actif. Chaque fonction de traduction utilise le gestionnaire enregistré. ```python from gt_i18n import I18nManager, set_i18n_manager manager = I18nManager(default_locale="en", locales=["es", "fr"]) set_i18n_manager(manager) ``` Signature : ```python I18nManager( *, default_locale: str = "en", locales: list[str] | None = None, project_id: str | None = None, cache_url: str | None = None, custom_mapping: CustomMapping | None = None, store_adapter: StorageAdapter | None = None, load_translations: TranslationsLoader | None = None, cache_expiry_time: int = 60_000, version_id: str | None = None, ) ``` Importez `I18nManager` depuis `gt_i18n`. Il n’est pas réexporté par les paquets du framework. ## Fonctionnement [#how-it-works] * **Ensemble de locales.** Le paramètre régional par défaut est toujours fusionné dans `locales`, de sorte que l’ensemble de locales du gestionnaire l’inclut toujours. * **Sélection du loader.** Si `load_translations` est fourni, il est utilisé ; sinon, si `project_id` est défini, un loader CDN pour `{cache_url}/{project_id}/{locale}` est créé ; sinon, un loader no-op renvoie un dictionnaire vide. * **Mise en cache.** Les traductions chargées sont mises en cache par paramètre régional pendant `cache_expiry_time` millisecondes. `get_translations` charge à la demande (async) ; `get_translations_sync` lit uniquement le cache et ne bloque jamais. * **Stockage du paramètre régional.** Le paramètre régional actuel est stocké via `store_adapter` (un [`ContextVarStorageAdapter`](/docs/python/reference/classes/context-var-storage-adapter) par défaut), ce qui isole la valeur pour chaque requête, aussi bien dans les contextes threadés qu’asynchrones. ## Paramètres du constructeur [#parameters] | Paramètre | Description | Type | Facultatif | Par défaut | | ----------------------------------------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ---------- | -------------------------- | | [`default_locale`](#default-locale) | Paramètre régional source et de secours. | `str` | Oui | `"en"` | | [`locales`](#locales) | Locales cibles prises en charge par l’application. | `list[str]` | Oui | `None` | | [`project_id`](#project-id) | ID du projet ; active le loader CDN lorsqu’il est défini. | `str` | Oui | `None` | | [`cache_url`](#cache-url) | URL de base du CDN. | `str` | Oui | `None` | | [`custom_mapping`](#custom-mapping) | Codes de langue personnalisés et substitutions de propriétés. | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Oui | `None` | | [`store_adapter`](#store-adapter) | Adaptateur de stockage personnalisé pour le paramètre régional de la requête. | [`StorageAdapter`](/docs/python/reference/classes/storage-adapter) | Oui | `ContextVarStorageAdapter` | | [`load_translations`](#load-translations) | Loader personnalisé ; remplace le loader CDN. | [`TranslationsLoader`](/docs/python/reference/classes/translations-loader) | Oui | `None` | | [`cache_expiry_time`](#cache-expiry) | Durée de vie du cache en millisecondes. | `int` | Oui | `60000` | | [`version_id`](#version-id) | Version de traduction épinglée. | `str` | Oui | `None` | ### `default_locale` [#default-locale] **Type** `str` · **Facultatif** · **Par défaut** `"en"` Le paramètre régional source et de secours. Par défaut, il s’agit du paramètre régional par défaut de la bibliothèque, `"en"` (`LIBRARY_DEFAULT_LOCALE`). ### `locales` [#locales] **Type** `list[str]` · **Facultatif** · **Par défaut** `None` Les locales cibles que l’application prend en charge. Le paramètre régional par défaut est toujours ajouté à l’ensemble. ### `project_id` [#project-id] **Type** `str` · **Facultatif** · **Par défaut** `None` L’ID du projet General Translation. S’il est défini et qu’aucun `load_translations` n’est fourni, le gestionnaire crée un loader CDN. ### `cache_url` [#cache-url] **Type** `str` · **Facultatif** · **Par défaut** `None` L’URL de base du CDN utilisée par le loader distant. Le CDN de General Translation est `https://cdn.gtx.dev`. ### `custom_mapping` [#custom-mapping] **Type** `CustomMapping` · **Facultatif** · **Par défaut** `None` Codes de langue personnalisés et redéfinitions de propriétés, transmis à l’instance [`GT`](/docs/platform/core/reference/gt-class/constructor) sous-jacente. ### `store_adapter` [#store-adapter] **Type** [`StorageAdapter`](/docs/python/reference/classes/storage-adapter) · **Facultatif** · **Par défaut** `ContextVarStorageAdapter` L’adaptateur de stockage de l’état du paramètre régional pour chaque requête. Par défaut, [`ContextVarStorageAdapter`](/docs/python/reference/classes/context-var-storage-adapter) est utilisé. ### `load_translations` [#load-translations] **Type** [`TranslationsLoader`](/docs/python/reference/classes/translations-loader) · **Facultatif** · **Par défaut** `None` Un loader personnalisé qui renvoie des traductions pour un paramètre régional. Remplace le loader CDN s’il est défini. ### `cache_expiry_time` [#cache-expiry] **Type** `int` · **Facultatif** · **Par défaut** `60000` Durée de vie du cache en millisecondes (valeur par défaut : 60000, soit 60 secondes). Lorsqu’une entrée dépasse cette durée, elle est considérée comme expirée : `get_translations`, en mode asynchrone, la recharge lors de son prochain appel, mais `get_translations_sync` — la méthode qu’utilise [`t`](/docs/python/reference/functions/t) — renvoie un dictionnaire vide pour une entrée expirée et **ne** déclenche **pas** de rechargement. Comme le chemin d’exécution des requêtes lit les traductions de manière synchrone et que rien ne relance le loader asynchrone après le démarrage, les traductions expirées ne sont pas rechargées automatiquement, et `t` retombe sur les chaînes source jusqu’à ce que `load_all_translations` (ou `get_translations`) soit exécuté à nouveau. `initialize_gt` n’expose pas ce paramètre ; les applications basées sur un framework ne peuvent donc pas modifier cette fenêtre de 60 secondes. ### `version_id` [#version-id] **Type** `str` · **Facultatif** · **Par défaut** `None` Une version de traduction figée, renvoyée par [`get_version_id`](/docs/python/reference/functions/get-version-id). ## Propriétés et méthodes [#members] | Membre | Description | Valeur renvoyée | | ---------------------------------------------- | ------------------------------------------------------------------------------------------- | ---------------- | | [`default_locale`](#member-default-locale) | Le paramètre régional source/par défaut (propriété). | `str` | | [`get_locale`](#member-get-locale) | Le paramètre régional de la requête actuelle, ou le paramètre régional par défaut. | `str` | | [`set_locale`](#member-set-locale) | Définit le paramètre régional de la requête actuelle. | `None` | | [`get_locales`](#member-get-locales) | La liste des locales prises en charge. | `list[str]` | | [`get_version_id`](#member-version-id) | L’id de version configuré, ou `None`. | `str \| None` | | [`requires_translation`](#member-requires) | Indique si un paramètre régional doit être traduit à partir de celui par défaut. | `bool` | | [`get_translations`](#member-get-translations) | Charge (de manière asynchrone) et met en cache les traductions d’un paramètre régional. | `dict[str, str]` | | [`get_translations_sync`](#member-get-sync) | Lit les traductions en cache sans bloquer. | `dict[str, str]` | | [`load_all_translations`](#member-load-all) | Charge de façon anticipée tous les paramètres régionaux configurés (de manière asynchrone). | `None` | | [`get_gt_instance`](#member-gt-instance) | Crée une instance `GT` pour la requête actuelle. | `GT` | ### `default_locale` [#member-default-locale] Propriété en lecture seule qui renvoie le paramètre régional source/par défaut. ### `get_locale()` [#member-get-locale] Renvoie le paramètre régional de la requête actuelle à partir de l’adaptateur de stockage, ou le paramètre régional par défaut si aucun n’est défini. ### `set_locale(locale)` [#member-set-locale] Enregistre le paramètre régional de la requête en cours dans l’adaptateur de stockage. ### `get_locales()` [#member-get-locales] Renvoie une copie de la liste des locales prises en charge (qui inclut toujours le paramètre régional par défaut). ### `get_version_id()` [#member-version-id] Renvoie l’id de version configuré, ou `None`. ### `requires_translation(locale=None)` [#member-requires] Indique si `locale` (ou le paramètre régional actuel) doit être traduit depuis la valeur par défaut, en fonction des locales configurées. ### `get_translations(locale=None)` [#member-get-translations] Une méthode asynchrone qui charge et met en cache les traductions pour `locale` (ou le paramètre régional actuel), évite les chargements simultanés en double et renvoie un dictionnaire vide en cas d’erreur. ### `get_translations_sync(locale=None)` [#member-get-sync] Renvoie les traductions mises en cache pour `locale` (ou le paramètre régional actuel) sans bloquer, ou un dictionnaire vide si rien n’est mis en cache (ou si le cache a expiré). C’est ce que [`t`](/docs/python/reference/functions/t) lit. ### `load_all_translations()` [#member-load-all] Une méthode asynchrone qui charge à l’avance les traductions pour chaque paramètre régional configuré. ### `get_gt_instance()` [#member-gt-instance] Retourne une instance `GT` configurée avec l’`id` du projet du gestionnaire, le paramètre régional source, le paramètre régional cible actuel, les locales et le mapping personnalisé. ## Exemple [#example] ```python import asyncio from gt_i18n import I18nManager, set_i18n_manager, t def load_translations(locale: str) -> dict[str, str]: return {} # charger depuis votre propre source manager = I18nManager(default_locale="en", locales=["es"], load_translations=load_translations) set_i18n_manager(manager) asyncio.run(manager.load_all_translations()) # préchargement manager.set_locale("es") t("Hello, world!") ```