# General Translation Python SDKs: Configurazione di General Translation
URL: https://generaltranslation.com/it/docs/python/guides/configuring.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Come inizializzare General Translation in Python con l'app, le impostazioni regionali e la distribuzione delle traduzioni in Flask, FastAPI o nella libreria core.

L’SDK Python si configura con una singola chiamata. In Flask e FastAPI è `initialize_gt(app)`; nella libreria core `gt-i18n` crei tu stesso un [`I18nManager`](/docs/python/reference/classes/i18n-manager). Questa guida illustra entrambe le opzioni, oltre a spiegare come le traduzioni vengono distribuite e precaricate.

## Configura un&#39;app Flask o FastAPI [#framework]

Chiama `initialize_gt(app)` una volta, prima di gestire le richieste. Legge `gt.config.json`, crea il gestore delle traduzioni, registra il rilevamento dell&#39;impostazione regionale per richiesta e carica preventivamente le traduzioni.

<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>

Gli argomenti keyword sovrascrivono `gt.config.json`. Consulta il [riferimento della configurazione](/docs/python/reference/config) per tutte le opzioni e le chiavi di configurazione.

Le due integrazioni condividono la stessa firma di [`initialize_gt`](/docs/python/reference/functions/initialize-gt); cambia solo l&#39;implementazione interna. Flask registra un hook `before_request` che imposta l&#39;impostazione regionale; FastAPI racchiude il ciclo di vita dell&#39;app in un wrapper (per il caricamento preventivo) e aggiunge un middleware HTTP che imposta l&#39;impostazione regionale.

## Configura la libreria core [#core]

Il pacchetto core `gt-i18n` non include [`initialize_gt`](/docs/python/reference/functions/initialize-gt). Crea un [`I18nManager`](/docs/python/reference/classes/i18n-manager), registralo come manager attivo con [`set_i18n_manager`](/docs/python/reference/functions/set-i18n-manager) e imposta tu stesso l&#39;impostazione regionale per la richiesta. In questo caso, il rilevamento dell&#39;impostazione regionale e il caricamento preventivo non sono automatici.

```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")   # l'impostazione regionale è sotto il tuo controllo per ogni richiesta
print(t("Hello, world!"))
```

Qualsiasi funzione di traduzione ([`t`](/docs/python/reference/functions/t), [`get_locale`](/docs/python/reference/functions/get-locale) e così via) usa il manager impostato con [`set_i18n_manager`](/docs/python/reference/functions/set-i18n-manager). Se ne chiami una prima che sia stato impostato un manager, viene generato un `RuntimeError`.

## Scegli come vengono distribuite le traduzioni [#delivery]

L’SDK carica le traduzioni in una di queste modalità:

* **General Translation CDN:** imposta `project_id` (nella configurazione o come argomento denominato) in modo che le traduzioni vengano caricate dalla CDN all’indirizzo `{cache_url}/{project_id}/{locale}`. Sovrascrivi l’URL di base con `cache_url`.
* **File locali:** passa una callback `load_translations` che restituisce un `dict[str, str]` per una determinata impostazione regionale. Questo sostituisce il loader della CDN. Vedi [Memorizzare le traduzioni localmente](/docs/python/guides/storing-translations).

Non è necessaria alcuna chiave API. La distribuzione via CDN dipende interamente da `project_id` e `cache_url`.

## Precaricare le traduzioni [#preload]

La funzione [`t`](/docs/python/reference/functions/t) legge da una cache in memoria, quindi le traduzioni devono essere caricate prima che vengano usate da una richiesta. Per impostazione predefinita, [`initialize_gt`](/docs/python/reference/functions/initialize-gt) le carica preventivamente all&#39;avvio (`eager_loading=True`).

*Nota: il caricamento preventivo viene eseguito solo quando sono note le `locales` di destinazione. In Flask vengono controllate direttamente le `locales` passate a [`initialize_gt`](/docs/python/reference/functions/initialize-gt), non quelle caricate da `gt.config.json` — se le `locales` provengono solo dal file di configurazione, passale esplicitamente o carica manualmente le traduzioni. Se le traduzioni non sono ancora caricate, [`t`](/docs/python/reference/functions/t) restituisce la stringa sorgente.*

*Nota: la cache in memoria scade dopo `cache_expiry_time` (60 secondi per impostazione predefinita) e il percorso di lettura sincrono usato da [`t`](/docs/python/reference/functions/t) non la ricarica — dopo la scadenza, [`t`](/docs/python/reference/functions/t) ricorre alle stringhe sorgente finché il loader asincrono non viene eseguito nuovamente. [`initialize_gt`](/docs/python/reference/functions/initialize-gt) non espone `cache_expiry_time`.*

## Gestire le traduzioni mancanti [#missing]

Quando manca una traduzione, [`t`](/docs/python/reference/functions/t) restituisce la stringa sorgente interpolata con le tue variabili invece di generare un errore, così la richiesta viene sempre renderizzata. Genera le traduzioni con la [CLI](/docs/cli/quickstart) prima del deployment, così in produzione saranno già pronte.

## 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.
