withGTConfig
Riferimento alle API per withGTConfig(), in precedenza initGT()
Panoramica
withGTConfig è il metodo principale per configurare la libreria gt-next.
Avvolge direttamente un oggetto NextConfig.
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
// il tuo next.config.js esistente
}
export default withGTConfig(nextConfig, {
// Opzioni di configurazione aggiuntive
});Legacy
initGT è il metodo legacy per configurare la libreria gt-next. Restituisce una funzione di callback che viene poi invocata sull'oggetto NextConfig.
Le props di entrambe le funzioni sono le stesse, con l'unica eccezione che withGTProps richiede anche il passaggio di NextConfig.
Usa withGTConfig per:
- Configurare le lingue supportate e la locale predefinita (cioè la lingua di fallback).
- Impostare le chiavi API e gli ID di progetto per accedere ai servizi GT.
- Definire il comportamento di caricamento.
- Configurare le impostazioni di timeout.
- Impostare endpoint personalizzati.
- Personalizzare il comportamento di traduzione, la cache e il batching delle richieste.
- Abilitare la convalida in fase di build tramite il plugin SWC.
withGTConfig deve essere utilizzato nel file next.config.js per abilitare la funzionalità di traduzione.
Riferimento
Per impostazione predefinita, withGTConfig cercherà un file gt.config.json nella stessa directory del file next.config.js.
Questo file JSON verrà caricato e unito alla configurazione passata a withGTConfig.
Consulta la documentazione di gt.config.json per ulteriori informazioni sul file di configurazione.
Lo strumento CLI leggerà la configurazione solo dal file gt.config.json, quindi
ti consigliamo di usare il file gt.config.json come unica fonte attendibile per la tua app.
Le opzioni di configurazione aggiuntive non presenti in gt.config.json possono essere passate a withGTConfig direttamente come props.
Proprietà obbligatorie
Prop
Type
Proprietà consigliate
Prop
Type
| Prop | Descrizione |
|---|---|
defaultLocale | Locale predefinita per l'applicazione. L'inglese verrà usato come lingua di fallback quando non ne viene specificata una. |
locales | Un elenco esclusivo di locali supportate per l'applicazione. Se viene ricevuta una richiesta non supportata, verrà reindirizzata alla successiva lingua preferita del browser nell'elenco. In assenza di corrispondenze, si userà defaultLocale come fallback. |
description | Una descrizione in linguaggio naturale del sito, utilizzata per agevolare la traduzione. |
Prop avanzati
Prop
Type
| Prop | Description |
|---|---|
projectId | ID del progetto, che può essere incluso qui o come variabile d’ambiente. |
apiKey | Sebbene non sia consigliato, una chiave API può essere inclusa qui. Può anche essere impostata come variabile d’ambiente. |
devApiKey | Sebbene non sia consigliato, una chiave API di sviluppo può essere inclusa qui. Può anche essere impostata come variabile d’ambiente. |
preferredModelProvider | Il provider di modelli AI preferito. Al momento sono supportati solo Anthropic e OpenAI. Lascia il campo vuoto e individueremo il provider migliore traduzione per traduzione. Nei periodi di alto traffico o quando un provider è disabilitato, non possiamo garantire l’uso del provider preferito. |
runtimeUrl | URL di base per le API di GT. Per disabilitare la traduzione automatica, impostalo su una stringa vuota. |
cacheUrl | URL in cui sono memorizzate le traduzioni nella cache. Può essere personalizzato per puntare a un server di cache dedicato. |
cacheExpiryTime | Tempo, in millisecondi, prima che scadano le traduzioni memorizzate localmente nella cache. |
renderSettings | Oggetto che specifica il comportamento di caricamento per le traduzioni a runtime. |
maxConcurrentRequests | Numero massimo di richieste di traduzione simultanee consentite alle API di GT. |
maxBatchSize | Numero massimo di traduzioni da raggruppare prima di inviare una richiesta. |
batchInterval | Intervallo, in millisecondi, tra le richieste di traduzione raggruppate. Aiuta a controllare la frequenza di invio delle richieste. |
dictionary | Percorso del file di configurazione opzionale per il dizionario. Come i18n, accetta una stringa per specificare un percorso personalizzato. I dizionari chiamati dictionary.js (o .jsx, .ts, .tsx, ecc.) e posizionati nella root o nella cartella src sono supportati per impostazione predefinita. |
dynamicJsxCheckLogLevel | Controlla la validazione dei contenuti dinamici non racchiusi nei componenti di traduzione. Imposta su "error" per far fallire le build, "warn" per mostrare avvisi o "off" per disabilitare il controllo. |
dynamicStringCheckLogLevel | Controlla la validazione degli argomenti della funzione di traduzione per garantire l’uso di letterali stringa. Imposta su "error" per far fallire le build, "warn" per mostrare avvisi o "off" per disabilitare il controllo. |
Restituisce
Una funzione (NextConfig) => NextConfig che estende l'oggetto di configurazione di Next.js con le impostazioni di GT specificate.
Eccezioni
Genera un Error se projectId è assente e si usano gli URL predefiniti, oppure se la chiave API è necessaria ma non è presente.
Impostazioni di rendering
Le impostazioni di rendering controllano il comportamento delle traduzioni durante il caricamento. Questo si applica solo alle traduzioni eseguite a runtime. Se la traduzione è in cache, il tempo di risposta è troppo breve per giustificare un comportamento di caricamento.
Prop
Type
| Prop | Description |
|---|---|
method | Il metodo utilizzato per renderizzare la pagina. Le opzioni sono skeleton, replace e default. |
timeout | Il tempo, in millisecondi, prima che il metodo vada in timeout. Il valore predefinito è 8000 ms. |
Metodi di rendering
skeleton: Effettua il rendering di un frammento.replace: Mostra il contenuto nella lingua predefinita durante l’attesa.default: Per le varianti con la stessa lingua (es.en-USeen-GB) si comporta come replace. Per le varianti con lingue diverse (es.en-USefr) si comporta come skeleton.
Timeout
I timeout si applicano solo alle traduzioni in runtime, ossia a quelle che devono essere eseguite su richiesta perché non sono state memorizzate nella cache.
Per impostazione predefinita, i timeout sono di 8 secondi. Questa scelta progettuale è pensata per agevolare gli utenti di Vercel, che sul piano gratuito hanno un timeout predefinito di 10 secondi per le funzioni serverless.
Esempi
Impostazioni di rendering
Questo esempio configura gt-next per mostrare uno scheletro mentre si attendono le traduzioni.
Se il caricamento delle traduzioni supera gli 8 secondi, il metodo va in timeout e viene mostrato il contenuto nella lingua predefinita.
{
"defaultLocale": "en-US",
"locales": ["en-US", "es", "fr"],
}import { withGTConfig } from 'gt-next/config';
const nextConfig = {
// Le tue altre configurazioni Next.js
};
export default withGTConfig(nextConfig, {
renderSettings: {
method: 'skeleton',
timeout: 10000,
},
});Validazione in fase di build
Questo esempio configura il plugin SWC per considerare le violazioni di contenuto dinamico come errori di build invece che semplici avvisi.
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
// Le tue altre configurazioni Next.js
};
export default withGTConfig(nextConfig, {
// Interrompi la build in caso di violazioni JSX dinamiche
dynamicJsxCheckLogLevel: 'error',
// Avvisa in caso di violazioni di stringhe dinamiche
dynamicStringCheckLogLevel: 'warn',
});Note
withGTConfigintegra la funzionalità di traduzione di GT nella tua app Next.js e deve essere utilizzato nel file di configurazione principale.- Parametri come
apiKeyeprojectIdpossono essere definiti direttamente nella configurazione o come variabili d’ambiente. - Parametri avanzati come
renderSettingse_batchIntervalconsentono un controllo fine del comportamento e delle prestazioni della traduzione.
Prossimi passi
- Aggiungi la traduzione al processo di CD.
Come valuti questa guida?