# react-native: Produzione vs sviluppo URL: https://generaltranslation.com/it/docs/react-native/concepts/environments.mdx --- title: Produzione vs sviluppo description: Differenze tra gli ambienti di produzione e di sviluppo --- {/* GENERATO AUTOMATICAMENTE: Non modificare direttamente. Modifica invece il template in content/docs-templates/. */} ## Panoramica `gt-react-native` si comporta in modo diverso a seconda dell'ambiente in cui viene eseguita l'applicazione React. Rileva l'ambiente controllando la variabile di ambiente `NODE_ENV`. ## Comportamento in produzione ### Variabili d'ambiente In produzione, l'unica variabile d'ambiente accettata è `GT_PROJECT_ID` (o una sua versione con prefisso, ad esempio `NEXT_PUBLIC_GT_PROJECT_ID`). Se una chiave API viene fornita tramite una variabile d'ambiente, `gt-react-native` genera un errore. Questo serve a evitare che le chiavi API vengano esposte al client. ### Comportamento di caricamento delle traduzioni In produzione, per impostazione predefinita il provider `gt-react-native` proverà a caricare le traduzioni dalla CDN di General Translation. Se hai configurato un comportamento personalizzato per il caricamento delle traduzioni, ad esempio traduzioni locali, tramite la funzione `loadTranslations`, `gt-react-native` userà quello. Il ricaricamento a caldo delle traduzioni è disabilitato perché l'app è in produzione. ## Comportamento in sviluppo ### Variabili d'ambiente Poiché lo sviluppo avviene in locale e non è esposto a utenti esterni, `gt-react-native` accetta qualsiasi variabile d'ambiente di General Translation, anche se ha il prefisso `NEXT_PUBLIC_`, `VITE_` (o simili). ### Comportamento di caricamento delle traduzioni In sviluppo, il provider `gt-react-native` tenterà innanzitutto di caricare le traduzioni nello stesso modo previsto in produzione. Queste traduzioni vengono caricate in memoria. Quando viene eseguito il rendering di un componente (che usa `useGT`, `` o `useTranslations`) in una lingua diversa da quella predefinita, il provider `gt-react-native` farà quanto segue: 1. Se rileva una traduzione valida già memorizzata per il contenuto specificato, eseguirà il rendering della traduzione. 2. Se non trova alcuna traduzione, tenterà di tradurre dinamicamente il contenuto tramite l'API di General Translation. 3. Dopo la traduzione, eseguirà il rendering della traduzione e la memorizzerà in memoria per utilizzi futuri. 4. Se la traduzione supera il timeout, userà il fallback ed eseguirà il rendering del contenuto originale. La nostra API memorizza inoltre internamente nella cache le traduzioni di sviluppo per un breve periodo di tempo; quindi, se la stessa traduzione viene richiesta di nuovo, verrà recuperata dalla cache. Queste traduzioni sono isolate a livello di progetto, quindi non verranno confuse con le traduzioni di altri progetti. Inoltre, la cache è specifica delle sessioni di sviluppo, quindi le traduzioni memorizzate nella cache non verranno usate in produzione. `gt-react-native` rileverà le modifiche ai componenti che usano `useGT`, `` o `useTranslations` e tradurrà dinamicamente il contenuto modificato tramite la nostra API. ## Chiavi API di produzione e di sviluppo [#api-keys] Per distinguere meglio il comportamento in produzione da quello in sviluppo di `gt-react-native`, usiamo i concetti di "chiavi API di produzione" e "chiavi API di sviluppo". ### Chiavi API di produzione Le chiavi API di produzione sono chiavi API che iniziano con `gtx-api-`. Quando viene fornita una chiave API di produzione, `gt-react-native` si comporta come descritto nella sezione [Comportamento in produzione](#production-behavior). Ciò significa che, se esegui la tua applicazione React in modalità di sviluppo e fornisci una chiave API di produzione, `gt-react-native` si comporterà come se fossi in produzione. Il ricaricamento a caldo delle traduzioni verrà disabilitato e i componenti senza traduzioni eseguiranno il rendering del contenuto originale. A parte questo comportamento, `gt-react-native` non utilizzerà in alcun altro modo la chiave API di produzione. Il motivo per cui ti chiediamo di creare una chiave API di produzione separata quando distribuisci in produzione è che lo strumento CLI accede solo alle chiavi API di produzione. Lo strumento CLI applicherà la fatturazione e i limiti di frequenza utilizzando la categoria "production". ### Chiavi API di sviluppo Le chiavi API di sviluppo sono chiavi API che iniziano con `gtx-dev-`. Quando viene fornita una chiave API di sviluppo, `gt-react-native` si comporta come descritto nella sezione [Comportamento in sviluppo](#development-behavior). Quando utilizzi una chiave API di sviluppo, la fatturazione e i limiti di frequenza vengono applicati usando la categoria "development". Le traduzioni create con una chiave API di sviluppo non vengono archiviate e non saranno disponibili per l'uso in produzione. Lo scopo delle traduzioni di sviluppo è consentirti di testare l'applicazione prima del rilascio in produzione.