# 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 con 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`](/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'impostazione regionale per la richiesta. In questo caso, il rilevamento dell'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'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