# General Translation Python SDKs: I18nManager
URL: https://generaltranslation.com/it/docs/python/reference/classes/i18n-manager.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: L'orchestratore centrale per le impostazioni regionali, il caricamento delle traduzioni e la cache in General Translation Python. Riferimento API per I18nManager.

L&#39;oggetto centrale che gestisce la configurazione delle impostazioni regionali, carica e mette in cache le traduzioni e tiene traccia dell&#39;impostazione regionale della richiesta corrente. [`initialize_gt`](/docs/python/reference/functions/initialize-gt) ne crea uno per te; nella libreria core `gt-i18n` lo costruisci direttamente e lo registri con [`set_i18n_manager`](/docs/python/reference/functions/set-i18n-manager).

## Panoramica [#overview]

Crea un `I18nManager` con argomenti specificati solo per nome, quindi registralo come gestore attivo. Ogni funzione di traduzione usa il gestore registrato.

```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` da `gt_i18n`. Il framework non lo riesporta nei suoi pacchetti.

## Come funziona [#how-it-works]

* **Insieme di impostazioni regionali.** L&#39;impostazione regionale predefinita viene sempre inclusa in `locales`, quindi l&#39;insieme di impostazioni regionali del gestore la contiene sempre.
* **Selezione del loader.** Se viene fornito `load_translations`, viene usato; altrimenti, se è impostato `project_id`, viene creato un loader CDN per `{cache_url}/{project_id}/{locale}`; altrimenti, un loader no-op restituisce un dict vuoto.
* **Caching.** Le traduzioni caricate vengono memorizzate nella cache per impostazione regionale per `cache_expiry_time` millisecondi. `get_translations` carica su richiesta (async); `get_translations_sync` legge solo dalla cache e non blocca mai.
* **Memorizzazione dell&#39;impostazione regionale.** L&#39;impostazione regionale corrente viene memorizzata tramite `store_adapter` (un [`ContextVarStorageAdapter`](/docs/python/reference/classes/context-var-storage-adapter) per impostazione predefinita), che isola il valore per ogni richiesta sia nei contesti con thread sia in quelli async.

## Parametri del costruttore [#parameters]

| Parametro                                 | Descrizione                                                                                  | Tipo                                                                       | Facoltativo | Predefinito                                                                              |
| ----------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ----------- | ---------------------------------------------------------------------------------------- |
| [`default_locale`](#default-locale)       | Impostazione regionale sorgente e di fallback.                                               | `str`                                                                      | Sì          | `"en"`                                                                                   |
| [`locales`](#locales)                     | Impostazioni regionali di destinazione supportate dall&#39;app.                              | `list[str]`                                                                | Sì          | `None`                                                                                   |
| [`project_id`](#project-id)               | ID progetto; abilita il loader CDN se impostato.                                             | `str`                                                                      | Sì          | `None`                                                                                   |
| [`cache_url`](#cache-url)                 | URL di base della CDN.                                                                       | `str`                                                                      | Sì          | `None`                                                                                   |
| [`custom_mapping`](#custom-mapping)       | Codici locale personalizzati e override delle proprietà.                                     | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping)      | Sì          | `None`                                                                                   |
| [`store_adapter`](#store-adapter)         | Adattatore di archiviazione personalizzato per l&#39;impostazione regionale della richiesta. | [`StorageAdapter`](/docs/python/reference/classes/storage-adapter)         | Sì          | [`ContextVarStorageAdapter`](/docs/python/reference/classes/context-var-storage-adapter) |
| [`load_translations`](#load-translations) | Loader personalizzato; sostituisce il loader CDN.                                            | [`TranslationsLoader`](/docs/python/reference/classes/translations-loader) | Sì          | `None`                                                                                   |
| [`cache_expiry_time`](#cache-expiry)      | Durata della cache in millisecondi.                                                          | `int`                                                                      | Sì          | `60000`                                                                                  |
| [`version_id`](#version-id)               | Versione di traduzione fissata.                                                              | `str`                                                                      | Sì          | `None`                                                                                   |

### `default_locale` [#default-locale]

**Tipo** `str` · **Facoltativo** · **Predefinito** `"en"`

L&#39;impostazione regionale sorgente e di fallback. Per impostazione predefinita, corrisponde al valore predefinito della library: `"en"` (`LIBRARY_DEFAULT_LOCALE`).

### `locales` [#locales]

**Tipo** `list[str]` · **Facoltativo** · **Predefinito** `None`

Le impostazioni regionali di destinazione supportate dall&#39;applicazione. L&#39;impostazione regionale predefinita è sempre inclusa.

### `project_id` [#project-id]

**Type** `str` · **Facoltativo** · **Predefinito** `None`

L&#39;ID progetto di General Translation. Quando è impostato e non viene fornito `load_translations`, il manager crea un loader CDN.

### `cache_url` [#cache-url]

**Tipo** `str` · **Facoltativo** · **Predefinito** `None`

L&#39;URL di base della CDN utilizzato dal loader remoto. La CDN di General Translation è `https://cdn.gtx.dev`.

### `custom_mapping` [#custom-mapping]

**Tipo** [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) · **Facoltativo** · **Predefinito** `None`

Codici locale personalizzati e override delle proprietà, passati all&#39;istanza [`GT`](/docs/platform/core/reference/gt-class/constructor) sottostante.

### `store_adapter` [#store-adapter]

**Tipo** [`StorageAdapter`](/docs/python/reference/classes/storage-adapter) · **Facoltativo** · **Predefinito** [`ContextVarStorageAdapter`](/docs/python/reference/classes/context-var-storage-adapter)

L&#39;adattatore di archiviazione per lo stato dell&#39;impostazione regionale relativo alla singola richiesta. Per impostazione predefinita è [`ContextVarStorageAdapter`](/docs/python/reference/classes/context-var-storage-adapter).

### `load_translations` [#load-translations]

**Type** [`TranslationsLoader`](/docs/python/reference/classes/translations-loader) · **Facoltativo** · **Predefinito** `None`

Un loader personalizzato che restituisce le traduzioni per una determinata impostazione regionale. Se specificato, sostituisce il loader CDN.

### `cache_expiry_time` [#cache-expiry]

**Tipo** `int` · **Facoltativo** · **Predefinito** `60000`

Durata della cache in millisecondi (predefinita: 60000, cioè 60 secondi). Quando una entry supera questa soglia di età, viene considerata scaduta: `get_translations` asincrona la ricarica alla chiamata successiva, ma `get_translations_sync` — il metodo usato da [`t`](/docs/python/reference/functions/t) — restituisce un dizionario vuoto per una entry scaduta e **non** avvia un ricaricamento. Poiché il percorso della richiesta legge le traduzioni in modo sincrono e nulla riesegue il loader asincrono dopo l&#39;avvio, le traduzioni scadute non vengono ricaricate automaticamente e [`t`](/docs/python/reference/functions/t) usa come fallback le stringhe sorgente finché `load_all_translations` (o `get_translations`) non viene eseguito di nuovo. [`initialize_gt`](/docs/python/reference/functions/initialize-gt) non espone questo parametro, quindi le app del framework non possono modificare l&#39;intervallo di 60 secondi.

### `version_id` [#version-id]

**Tipo** `str` · **Facoltativo** · **Predefinito** `None`

Una versione di traduzione fissata, restituita da [`get_version_id`](/docs/python/reference/functions/get-version-id).

## Proprietà e metodi [#members]

| Membro                                         | Descrizione                                                                                      | Restituisce      |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------ | ---------------- |
| [`default_locale`](#member-default-locale)     | L&#39;impostazione regionale sorgente/predefinita (proprietà).                                   | `str`            |
| [`get_locale`](#member-get-locale)             | L&#39;impostazione regionale della richiesta corrente, oppure quella predefinita.                | `str`            |
| [`set_locale`](#member-set-locale)             | Imposta l&#39;impostazione regionale della richiesta corrente.                                   | `None`           |
| [`get_locales`](#member-get-locales)           | L&#39;elenco delle impostazioni regionali supportate.                                            | `list[str]`      |
| [`get_version_id`](#member-version-id)         | L&#39;id della versione configurata, oppure `None`.                                              | `str \| None`    |
| [`requires_translation`](#member-requires)     | Indica se un&#39;impostazione regionale richiede la traduzione da quella predefinita.            | `bool`           |
| [`get_translations`](#member-get-translations) | Carica in modo asincrono e memorizza nella cache le traduzioni di un&#39;impostazione regionale. | `dict[str, str]` |
| [`get_translations_sync`](#member-get-sync)    | Legge le traduzioni memorizzate nella cache senza bloccare.                                      | `dict[str, str]` |
| [`load_all_translations`](#member-load-all)    | Carica preventivamente tutte le impostazioni regionali configurate (in modo asincrono).          | `None`           |
| [`get_gt_instance`](#member-gt-instance)       | Crea un&#39;istanza `GT` per la richiesta corrente.                                              | `GT`             |

### `default_locale` [#member-default-locale]

Proprietà di sola lettura che restituisce l&#39;impostazione regionale sorgente o predefinita.

### `get_locale()` [#member-get-locale]

Restituisce l&#39;impostazione regionale della richiesta corrente dall&#39;adattatore di archiviazione; se non è disponibile, usa l&#39;impostazione regionale predefinita.

### `set_locale(locale)` [#member-set-locale]

Salva l&#39;impostazione regionale della richiesta corrente nell&#39;adattatore di archiviazione.

### `get_locales()` [#member-get-locales]

Restituisce una copia dell&#39;elenco delle impostazioni regionali supportate (sempre inclusa l&#39;impostazione regionale predefinita).

### `get_version_id()` [#member-version-id]

Restituisce l&#39;identificativo della versione configurata, oppure `None`.

### `requires_translation(locale=None)` [#member-requires]

Indica se `locale` (o l&#39;impostazione regionale corrente) richiede una traduzione rispetto a quella predefinita, in base ai locales configurati.

### `get_translations(locale=None)` [#member-get-translations]

Un metodo asincrono che carica e memorizza nella cache le traduzioni per `locale` (o l&#39;impostazione regionale corrente), evitando duplicazioni nei caricamenti concorrenti e restituendo un dizionario vuoto in caso di errore.

### `get_translations_sync(locale=None)` [#member-get-sync]

Restituisce le traduzioni memorizzate nella cache per `locale` (o per l&#39;impostazione regionale corrente) senza bloccare l&#39;esecuzione, oppure un dizionario vuoto se nella cache non c&#39;è nulla (o se la cache è scaduta). È ciò che legge [`t`](/docs/python/reference/functions/t).

### `load_all_translations()` [#member-load-all]

Un metodo asincrono che carica preventivamente le traduzioni per tutte le impostazioni regionali configurate.

### `get_gt_instance()` [#member-gt-instance]

Restituisce un&#39;istanza `GT` configurata con l&#39;ID progetto del manager, l&#39;impostazione regionale sorgente, l&#39;impostazione regionale di destinazione corrente, `locales` e la mappatura personalizzata.

## Esempio [#example]

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

def load_translations(locale: str) -> dict[str, str]:
    return {}  # carica dalla tua sorgente

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

asyncio.run(manager.load_all_translations())  # precarica
manager.set_locale("es")
t("Hello, world!")
```

## Sitemap

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