# General Translation Python SDKs: I18nManager URL: https://generaltranslation.com/es/docs/python/reference/classes/i18n-manager.mdx --- title: I18nManager description: El orquestador central de las configuraciones regionales, la carga de traducciones y el almacenamiento en caché en General Translation para Python. Referencia de la API de I18nManager. --- El objeto central que mantiene la configuración regional, carga y almacena en caché las traducciones, y realiza el seguimiento de la configuración regional de la solicitud actual. [`initialize_gt`](/docs/python/reference/functions/initialize-gt) crea uno por ti; en la biblioteca principal `gt-i18n`, lo construyes directamente y lo registras con [`set_i18n_manager`](/docs/python/reference/functions/set-i18n-manager). ## Descripción general [#overview] Crea un `I18nManager` con argumentos solo por palabra clave y luego regístralo como administrador activo. Todas las funciones de traducción leen del administrador registrado. ```python from gt_i18n import I18nManager, set_i18n_manager manager = I18nManager(default_locale="en", locales=["es", "fr"]) set_i18n_manager(manager) ``` Firma: ```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, ) ``` Importa `I18nManager` desde `gt_i18n`. Los paquetes del framework no lo reexportan. ## Cómo funciona [#how-it-works] * **Conjunto de locales.** La configuración regional predeterminada siempre se incorpora a `locales`, por lo que el conjunto de locales del administrador siempre la incluye. * **Selección del loader.** Si se proporciona `load_translations`, se usa; de lo contrario, si `project_id` está configurado, se crea un loader de CDN para `{cache_url}/{project_id}/{locale}`; si no, un loader no operativo devuelve un dict vacío. * **Almacenamiento en caché.** Las traducciones cargadas se almacenan en caché por configuración regional durante `cache_expiry_time` milisegundos. `get_translations` carga bajo demanda (async); `get_translations_sync` solo lee la caché y nunca bloquea. * **Almacenamiento de la configuración regional.** La configuración regional actual se almacena mediante `store_adapter` (un [`ContextVarStorageAdapter`](/docs/python/reference/classes/context-var-storage-adapter) de forma predeterminada), que aísla el valor por solicitud tanto en contextos con hilos como async. ## Parámetros del constructor [#parameters] | Parámetro | Descripción | Tipo | Opcional | Predeterminado | | ----------------------------------------- | ----------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------- | -------------------------- | | [`default_locale`](#default-locale) | Configuración regional de origen y de contenido alternativo. | `str` | Sí | `"en"` | | [`locales`](#locales) | Locales de destino que admite la aplicación. | `list[str]` | Sí | `None` | | [`project_id`](#project-id) | ID del proyecto; habilita el loader de la CDN cuando se configura. | `str` | Sí | `None` | | [`cache_url`](#cache-url) | URL base de la CDN. | `str` | Sí | `None` | | [`custom_mapping`](#custom-mapping) | Códigos de configuración regional personalizados y anulaciones de propiedades. | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Sí | `None` | | [`store_adapter`](#store-adapter) | Adaptador de almacenamiento personalizado para la configuración regional de la solicitud. | [`StorageAdapter`](/docs/python/reference/classes/storage-adapter) | Sí | `ContextVarStorageAdapter` | | [`load_translations`](#load-translations) | Loader personalizado; reemplaza al loader de la CDN. | [`TranslationsLoader`](/docs/python/reference/classes/translations-loader) | Sí | `None` | | [`cache_expiry_time`](#cache-expiry) | Duración de la caché en milisegundos. | `int` | Sí | `60000` | | [`version_id`](#version-id) | Versión de traducción fijada. | `str` | Sí | `None` | ### `default_locale` [#default-locale] **Tipo** `str` · **Opcional** · **Predeterminado** `"en"` La configuración regional de origen y la de contenido alternativo. De forma predeterminada, usa el valor predeterminado de la biblioteca `"en"` (`LIBRARY_DEFAULT_LOCALE`). ### `locales` [#locales] **Tipo** `list[str]` · **Opcional** · **Predeterminado** `None` Locales de destino compatibles con la aplicación. La configuración regional predeterminada siempre se añade al conjunto. ### `project_id` [#project-id] **Type** `str` · **Opcional** · **Predeterminado** `None` El ID del proyecto de General Translation. Cuando se establece y no se proporciona `load_translations`, el administrador genera un loader de CDN. ### `cache_url` [#cache-url] **Type** `str` · **Opcional** · **Predeterminado** `None` La URL base de la CDN que usa el loader remoto. La CDN de General Translation es `https://cdn.gtx.dev`. ### `custom_mapping` [#custom-mapping] **Type** `CustomMapping` · **Opcional** · **Predeterminado** `None` Códigos de configuración regional personalizados y reemplazos de propiedades que se pasan a la instancia subyacente de [`GT`](/docs/platform/core/reference/gt-class/constructor). ### `store_adapter` [#store-adapter] **Type** [`StorageAdapter`](/docs/python/reference/classes/storage-adapter) · **Opcional** · **Predeterminado** `ContextVarStorageAdapter` El adaptador de almacenamiento para el estado de la configuración regional de cada solicitud. El valor predeterminado es [`ContextVarStorageAdapter`](/docs/python/reference/classes/context-var-storage-adapter). ### `load_translations` [#load-translations] **Tipo** [`TranslationsLoader`](/docs/python/reference/classes/translations-loader) · **Opcional** · **Predeterminado** `None` Un loader personalizado que devuelve traducciones para una configuración regional. Si se proporciona, reemplaza al loader de la CDN. ### `cache_expiry_time` [#cache-expiry] **Tipo** `int` · **Opcional** · **Predeterminado** `60000` Tiempo de vida de la caché en milisegundos (predeterminado: 60000, es decir, 60 segundos). Cuando una entrada supera este tiempo, se considera vencida: `get_translations` asíncrono la recarga en la siguiente llamada, pero `get_translations_sync` —el método que usa [`t`](/docs/python/reference/functions/t)— devuelve un `dict` vacío para una entrada vencida y **no** activa ninguna recarga. Como la ruta de solicitud lee las traducciones de forma síncrona y nada vuelve a ejecutar el loader asíncrono después del inicio, las traducciones vencidas no se recargan automáticamente, y `t` vuelve a las cadenas de origen hasta que `load_all_translations` (o `get_translations`) se ejecute de nuevo. `initialize_gt` no expone este parámetro, por lo que las aplicaciones basadas en frameworks no pueden cambiar la ventana de 60 segundos. ### `version_id` [#version-id] **Tipo** `str` · **Opcional** · **Predeterminado** `None` Una versión de traducción fijada que devuelve [`get_version_id`](/docs/python/reference/functions/get-version-id). ## Propiedades y métodos [#members] | Miembro | Descripción | Devuelve | | ---------------------------------------------- | --------------------------------------------------------------------------------- | ---------------- | | [`default_locale`](#member-default-locale) | La configuración regional de origen o predeterminada (propiedad). | `str` | | [`get_locale`](#member-get-locale) | La configuración regional actual de la solicitud, o la predeterminada. | `str` | | [`set_locale`](#member-set-locale) | Establece la configuración regional actual de la solicitud. | `None` | | [`get_locales`](#member-get-locales) | La lista de locales compatibles. | `list[str]` | | [`get_version_id`](#member-version-id) | El id de versión configurado, o `None`. | `str \| None` | | [`requires_translation`](#member-requires) | Indica si una configuración regional necesita traducción desde la predeterminada. | `bool` | | [`get_translations`](#member-get-translations) | Carga (async) y almacena en caché las traducciones de una configuración regional. | `dict[str, str]` | | [`get_translations_sync`](#member-get-sync) | Lee las traducciones en caché sin bloquear. | `dict[str, str]` | | [`load_all_translations`](#member-load-all) | Carga por adelantado todos los locales configurados (async). | `None` | | [`get_gt_instance`](#member-gt-instance) | Crea una instancia de `GT` para la solicitud actual. | `GT` | ### `default_locale` [#member-default-locale] Una propiedad de solo lectura que devuelve la configuración regional predeterminada/de origen. ### `get_locale()` [#member-get-locale] Devuelve la configuración regional actual de la solicitud desde el adaptador de almacenamiento y, si no está disponible, usa la configuración regional predeterminada. ### `set_locale(locale)` [#member-set-locale] Guarda la configuración regional actual de la solicitud en el adaptador de almacenamiento. ### `get_locales()` [#member-get-locales] Devuelve una copia de la lista de locales admitidos (que siempre incluye la configuración regional predeterminada). ### `get_version_id()` [#member-version-id] Devuelve el id de la versión configurada o `None`. ### `requires_translation(locale=None)` [#member-requires] Devuelve si `locale` (o la configuración regional actual) necesita traducirse a partir de la predeterminada, según los locales configurados. ### `get_translations(locale=None)` [#member-get-translations] Un método asíncrono que carga y almacena en caché las traducciones de `locale` (o de la configuración regional actual), evita cargas concurrentes duplicadas y devuelve un `dict` vacío en caso de error. ### `get_translations_sync(locale=None)` [#member-get-sync] Devuelve las traducciones en caché para `locale` (o la configuración regional actual) sin bloquear, o un diccionario vacío cuando no hay nada en caché (o la caché ha caducado). Esto es lo que consulta [`t`](/docs/python/reference/functions/t). ### `load_all_translations()` [#member-load-all] Un método asíncrono que carga por adelantado las traducciones de todos los locales configurados. ### `get_gt_instance()` [#member-gt-instance] Devuelve una instancia de `GT` configurada con el ID del proyecto del administrador, la configuración regional de origen, la configuración regional de destino actual, locales y el mapeo personalizado. ## Ejemplo [#example] ```python import asyncio from gt_i18n import I18nManager, set_i18n_manager, t def load_translations(locale: str) -> dict[str, str]: return {} # cargar desde tu propia fuente manager = I18nManager(default_locale="en", locales=["es"], load_translations=load_translations) set_i18n_manager(manager) asyncio.run(manager.load_all_translations()) # precargar manager.set_locale("es") t("Hello, world!") ```