Produzione vs sviluppo
Differenze tra gli ambienti di produzione e di sviluppo
Panoramica
gt-next si comporta in modo diverso a seconda dell'ambiente in cui è in esecuzione la tua applicazione Next.js.
Determina l'ambiente verificando la variabile di ambiente NODE_ENV.
Comportamento in produzione
Variabili d'ambiente
In produzione, gt-next leggerà solo le variabili d'ambiente GT_PROJECT_ID e GT_API_KEY.
La chiave API deve essere una chiave API di produzione e iniziare con gtx-api-.
Se utilizzi una chiave API di sviluppo, gt-next genererà un errore.
Comportamento di caricamento delle traduzioni
In produzione, gt-next tenterà per impostazione predefinita di caricare le traduzioni dal CDN di General Translation.
Se hai configurato un comportamento personalizzato per il caricamento delle traduzioni, ad esempio traduzioni locali, tramite la funzione loadTranslations, gt-next userà quello.
L’hot reload delle traduzioni è disattivato, poiché ci si trova in produzione.
La traduzione on demand per contenuti dinamici tramite il componente <Tx> o la funzione tx è abilitata, ma solo nei componenti server.
Comportamento in sviluppo
Variabili d'ambiente
gt-next accetta le variabili d'ambiente GT_PROJECT_ID e GT_API_KEY.
La chiave API può essere una chiave di Produzione, che inizia con gtx-api-, oppure una chiave di Sviluppo, che inizia con gtx-dev-.
Se in ambiente di sviluppo viene fornita una chiave API di produzione, gt-next si comporterà come in produzione.
Questo significa che l'hot reload delle traduzioni sarà disabilitato e i componenti senza traduzioni renderanno il contenuto originale.
Comportamento di caricamento delle traduzioni
In fase di sviluppo, gt-next proverà innanzitutto a caricare le traduzioni nello stesso modo in cui avviene in produzione.
Queste traduzioni vengono caricate in memoria.
Quando si esegue il rendering di un componente (che usa useGT, <T> o useTranslations) in una lingua diversa da quella predefinita, gt-next eseguirà quanto segue:
- Se rileva una traduzione valida e già archiviata per il contenuto in questione, ne effettuerà il rendering.
- Se non viene trovata alcuna traduzione, tenterà di tradurre dinamicamente il contenuto tramite la General Translation API.
- Dopo la traduzione, il risultato verrà renderizzato e archiviato in memoria per usi futuri.
- Se la traduzione supera il tempo limite, verrà effettuato il fallback e verrà renderizzato il contenuto originale.
La nostra API mette anche in cache internamente, per un breve periodo, le traduzioni generate in sviluppo; se la stessa traduzione viene richiesta di nuovo, verrà servita dalla cache.
Queste traduzioni sono isolate a livello di progetto, quindi non verranno mescolate con quelle di altri progetti. Inoltre, la cache è specifica per le sessioni di sviluppo, quindi le traduzioni in cache non verranno utilizzate in produzione.
gt-next rileverà le modifiche ai componenti che utilizzano useGT, <T> o useTranslations e tradurrà dinamicamente il contenuto modificato tramite la nostra API.
Chiavi API di produzione vs sviluppo
Per distinguere il comportamento di gt-next in produzione rispetto allo sviluppo, utilizziamo le “Chiavi API di produzione” e le “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-next si comporta come descritto nella sezione Comportamento in produzione.
Questo significa che, se stai eseguendo la tua applicazione Next.js in modalità di sviluppo e fornisci una chiave API di produzione, gt-next si comporterà come se fossi in produzione.
L’hot reload delle traduzioni sarà disattivato e i componenti senza traduzioni renderanno il contenuto originale.
A parte questo, gt-next non utilizzerà la chiave API di produzione in nessun altro modo.
Lo strumento CLI legge la variabile d’ambiente GT_API_KEY e accetta solo chiavi API di produzione.
Lo strumento CLI applicherà fatturazione e limitazione della frequenza (rate limiting) 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-next si comporta come descritto nella sezione Comportamento in sviluppo.
Quando si utilizza una chiave API di sviluppo, la fatturazione e il rate limiting verranno applicati con la categoria “development”.
Le traduzioni create con una chiave API di sviluppo non verranno memorizzate e non saranno disponibili in produzione.
Le traduzioni di sviluppo servono a consentirti di testare l’applicazione prima della messa in produzione.
Come valuti questa guida?