# General Translation Python SDKs: I18nManager
URL: https://generaltranslation.com/es/docs/python/reference/classes/i18n-manager.mdx
Docs index: https://generaltranslation.com/llms.txt
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 sobrescritura 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`](/docs/python/reference/classes/context-var-storage-adapter) |
| [`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 la 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`](/docs/platform/core/reference/types/custom-mapping) · **Opcional** · **Predeterminado** `None`

Códigos de configuración regional personalizados y sobrescritura 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`](/docs/python/reference/classes/context-var-storage-adapter)

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`

Duración 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`](/docs/python/reference/functions/t) vuelve a las cadenas de origen hasta que `load_all_translations` (o `get_translations`) se ejecute de nuevo. [`initialize_gt`](/docs/python/reference/functions/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!")
```

## Sitemap

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