# General Translation Python SDKs: Configurazione di General Translation URL: https://generaltranslation.com/it/docs/python/guides/configuring.mdx --- title: Configurazione di General Translation description: "Come inizializzare General Translation in Python: questa guida spiega come configurare l'app, le impostazioni regionali e la distribuzione delle traduzioni in Flask, FastAPI o nella libreria core." related: links: - /docs/python/guides/translating-strings - /docs/python/guides/detecting-locale - /docs/python/guides/declaring-variables - /docs/python/guides/storing-translations --- 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'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'impostazione regionale per richiesta e carica preventivamente le traduzioni. ```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"]) ``` ```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"]) ``` 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'implementazione interna. Flask registra un hook `before_request` che imposta l'impostazione regionale; FastAPI racchiude il ciclo di vita dell'app in un wrapper (per il caricamento preventivo) e aggiunge un middleware HTTP che imposta l'impostazione regionale. ## Configura la libreria core [#core] Il pacchetto core `gt-i18n` non include `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'impostazione regionale per la richiesta. In questo caso, il rilevamento dell'impostazione regionale e il precaricamento 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`. 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`. ## Precarica 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 una richiesta le usi. Per impostazione predefinita, `initialize_gt` le precarica all'avvio (`eager_loading=True`). *Nota: il caricamento anticipato viene eseguito solo quando i `locales` di destinazione sono noti. In Flask, questo controllo riguarda i `locales` che passi direttamente a `initialize_gt`, non quelli caricati da `gt.config.json`: se i tuoi `locales` provengono solo dal file di configurazione, passali esplicitamente oppure carica tu stesso le traduzioni. Se le traduzioni non sono ancora state caricate, `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` non la ricarica; dopo la scadenza, `t` torna alle stringhe sorgente finché il loader asincrono non viene eseguito di nuovo. `initialize_gt` non espone `cache_expiry_time`.* ## Gestire le traduzioni mancanti [#missing] Quando manca una traduzione, `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