# General Translation React SDKs (gt-react, gt-next): Configurazione di General Translation
URL: https://generaltranslation.com/it/docs/react/guides/configuring.mdx
---
title: Configurazione di General Translation
description: "Come configurare General Translation in React: questa guida illustra l'inizializzazione, il provider, le credenziali e la distribuzione delle traduzioni in React, Next.js, TanStack Start e React Native."
related:
links:
- /docs/react/guides/translating-jsx
- /docs/react/guides/translating-strings
- /docs/react/guides/managing-locales
- /docs/react/guides/storing-translations
---
Le applicazioni React server-rendered e ogni integrazione con framework richiedono una configurazione, oltre a un `GTProvider` che renda disponibili le traduzioni ai tuoi componenti. Le SPA React si inizializzano direttamente con `initializeGTSPA`; per questa configurazione, segui il [React SPA Quickstart](/docs/react/react-spa-quickstart).
*Nota: `gt-react`, `gt-tanstack-start` e `gt-react-native` non leggono automaticamente `gt.config.json` — importalo e passa i relativi campi alla chiamata di inizializzazione. In Next.js, il plugin `withGTConfig` legge `gt.config.json` per te.*
## Inizializza la libreria [#initialize]
Configura General Translation una sola volta, prima del primo rendering.
Chiama [`initializeGT`](/docs/react/reference/config#initialize) una volta in un modulo che viene caricato sia sul server sia sul client. Il framework risolve l'impostazione regionale della richiesta e fornisce le traduzioni corrispondenti durante il rendering sul server.
```tsx title="src/routes/root.tsx"
import { initializeGT } from 'gt-react';
import gtConfig from '../../gt.config.json';
const loadTranslations = (locale: string) =>
import(`../_gt/${locale}.json`).then((m) => m.default);
initializeGT({ ...gtConfig, loadTranslations });
```
I callback [`loadTranslations`](/docs/react/reference/functions/load-translations) e [`loadDictionary`](/docs/react/reference/functions/load-dictionary), le credenziali e la configurazione dell'impostazione regionale vanno tutti passati nella chiamata di inizializzazione, non in `GTProvider`.
Next.js non prevede una chiamata di inizializzazione manuale. Aggiungi il plugin `withGTConfig` a `next.config.ts`; legge `gt.config.json` e configura la traduzione in fase di build e al momento della richiesta.
```ts title="next.config.ts"
import { withGTConfig } from 'gt-next/config';
const nextConfig = {};
export default withGTConfig(nextConfig, {
// opzioni come `dictionary`, `loadTranslationsPath` e override dell'impostazione regionale
});
```
Chiama `initializeGT` una volta all'avvio del server e del client, passando anche la tua configurazione.
```tsx
import { initializeGT } from 'gt-tanstack-start';
import gtConfig from '../gt.config.json';
const loadTranslations = (locale: string) =>
import(`./_gt/${locale}.json`).then((m) => m.default);
initializeGT({ ...gtConfig, loadTranslations });
```
Usa `parseLocale` di `gt-tanstack-start` in una funzione sul server per risolvere l'impostazione regionale della richiesta dai cookie e dall'header `accept-language`.
Chiama `initializeGT` una volta all'avvio dell'app, passando anche la tua configurazione.
```tsx
import { initializeGT } from 'gt-react-native';
import gtConfig from '../gt.config.json';
const loadTranslations = (locale: string) =>
import(`./_gt/${locale}.json`).then((m) => m.default);
initializeGT({ ...gtConfig, loadTranslations });
```
## Aggiungi il provider [#provider]
Avvolgi la tua app in `GTProvider` così i componenti possono leggere le traduzioni.
Carica sul server le traduzioni dell'impostazione regionale attiva, quindi passa entrambi i valori al provider. L'API esatta del loader dipende dal framework che usi.
```tsx title="src/routes/root.tsx"
import { GTProvider, getTranslationsSnapshot, parseLocale } from 'gt-react';
export async function loadRoot(request: Request) {
const locale = parseLocale(request);
return {
locale,
translations: await getTranslationsSnapshot(locale),
};
}
export function Root({ locale, translations, children }) {
return (
{children}
);
}
```
Il provider accetta anche `region` e `enableI18n` (il valore predefinito è `true`). Quando `enableI18n` è `false` oppure l'impostazione regionale attiva coincide con l'impostazione regionale predefinita, il contenuto viene renderizzato nella lingua sorgente.
Avvolgi il tuo root layout in [``](/docs/react/reference/components/gt-provider). Legge l'impostazione regionale della richiesta e le traduzioni dal plugin, quindi non richiede le props `locale` o `translations`.
```tsx title="app/layout.tsx"
import { GTProvider, useLocale } from 'gt-next';
export default function RootLayout({ children }: { children: React.ReactNode }) {
const locale = useLocale();
return (
{children}
);
}
```
Passa l'`locale` attiva e le relative `translations`. Entrambe sono obbligatorie.
```tsx
import { GTProvider, getTranslationsSnapshot } from 'gt-tanstack-start';
const translations = await getTranslationsSnapshot(locale);
;
```
Avvolgi la tua app in ``. Carica automaticamente le traduzioni per l'impostazione regionale attiva, quindi `translations` non è obbligatorio; `locale` è facoltativa e, per impostazione predefinita, usa l'impostazione regionale del dispositivo.
```tsx
import { GTProvider } from 'gt-react-native';
;
```
**Modificato in v11 (React):** il provider `gt-react` non accetta più `config`, `loadTranslations` o credenziali come props. Questa configurazione ora viene definita nella chiamata di inizializzazione; il provider riceve solo `locale` e `translations` già risolte.
Consulta il [riferimento della configurazione](/docs/react/reference/config) per tutte le opzioni del provider e dell'inizializzazione.
## Aggiungi le credenziali [#credentials]
La distribuzione delle traduzioni e le funzionalità di sviluppo utilizzano un ID progetto e una chiave API, configurati tramite variabili d'ambiente.
Esponi l'ID progetto e la chiave API di sviluppo seguendo la convenzione del tuo framework per le variabili d'ambiente lato client, quindi passali a `initializeGT`. Non esporre mai una chiave API di produzione.
Impostali nel tuo ambiente; il plugin li legge automaticamente. `GT_API_KEY` (la chiave di produzione) viene usata lato server e dalla CLI in CI. Usa il prefisso `NEXT_PUBLIC_` solo per i valori che devono arrivare al browser.
```bash title=".env.local"
GT_PROJECT_ID="..."
GT_DEV_API_KEY="gtx-dev-..."
```
Impostali tramite le variabili d'ambiente pubbliche del tuo bundler e passali alla chiamata di inizializzazione.
```bash title=".env (Vite)"
VITE_GT_PROJECT_ID="..."
VITE_GT_DEV_API_KEY="gtx-dev-..."
```
Impostali tramite le variabili d'ambiente pubbliche del tuo bundler e passali alla chiamata di inizializzazione.
```bash title=".env (Expo)"
EXPO_PUBLIC_GT_PROJECT_ID="..."
EXPO_PUBLIC_GT_DEV_API_KEY="gtx-dev-..."
```
*Nota: esponi al client solo una chiave API di sviluppo. Le chiavi API di produzione sono usate dalla CLI in CI e non vengono mai inviate al client.*
## Scegli come vengono fornite le traduzioni [#delivery]
General Translation gestisce le traduzioni in una di queste modalità, in base alla tua configurazione. Il comportamento è lo stesso in tutti i framework:
* **File locali:** fornisci `loadTranslations` per importare il JSON incluso nel bundle. Vedi [Archiviare le traduzioni localmente](/docs/react/guides/storing-translations).
* **CDN di General Translation:** fornisci un `projectId` (senza un loader personalizzato) per recuperare le traduzioni dalla CDN di GT a runtime.
* **Endpoint personalizzato:** imposta un `cacheUrl` personalizzato per caricarle dal tuo host.
In sviluppo, se fornisci un `projectId` e una chiave API di sviluppo, abiliti la traduzione su richiesta e l'hot reload, così le nuove stringhe vengono tradotte mentre lavori. In produzione, le traduzioni provengono dai file pre-generati o dalla CDN.
## Next steps
- /docs/react/guides/translating-jsx
- /docs/react/guides/translating-strings
- /docs/react/guides/managing-locales
- /docs/react/guides/storing-translations