# react-native: GTProvider URL: https://generaltranslation.com/it/docs/react-native/api/components/gtprovider.mdx --- title: GTProvider description: Riferimento dell'API per il componente GTProvider --- ## Panoramica Il componente `` fornisce il contesto di General Translation (GT) ai componenti figli, consentendo loro di accedere ai contenuti tradotti. È necessario per qualsiasi traduzione lato client nell'applicazione. ### Quando usarlo * Avvolgi l'intera applicazione in `` per abilitare le traduzioni lato client. * Il componente `` viene usato sia per [il componente inline ``](/docs/react-native/guides/t) sia per [i dizionari](/docs/react-native/guides/dictionaries). ## Riferimento ### Proprietà Promise>', optional: true, }, 'loadDictionary?': { type: '(locale: string) => Promise>', optional: true, }, 'region?': { type: 'string', optional: true, }, 'fallback?': { type: 'ReactNode', optional: true, }, 'customMapping?': { type: 'CustomMapping', optional: true, }, }} /> ### Descrizione | Prop | Descrizione | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `children` | Qualsiasi componente, o componente padre, che debba tradurre o accedere alle informazioni di traduzione lato client. Devono essere inclusi tutti i componenti che usano ``, `useGT` o altre utilità di traduzione. | | `projectId?` | L'ID del progetto richiesto per i servizi cloud di General Translation. | | `dictionary?` | Il dizionario di traduzione del progetto. | | `locales?` | L'elenco delle impostazioni regionali approvate per il progetto. | | `defaultLocale?` | L'impostazione regionale predefinita da usare se non ne viene trovata nessun'altra. | | `locale?` | L'impostazione regionale corrente, se già impostata. | | `cacheUrl?` | L'URL del servizio di cache per recuperare le traduzioni. | | `runtimeUrl?` | L'URL del servizio runtime per recuperare le traduzioni. | | `renderSettings?` | Le impostazioni per il rendering delle traduzioni. | | `_versionId?` | L'ID della versione da usare per recuperare le traduzioni. | | `devApiKey?` | La chiave API per gli ambienti di sviluppo. | | `config?` | Un oggetto di configurazione (in genere importato da `gt.config.json`) che contiene `projectId`, `locales`, `defaultLocale` e altre impostazioni. Un'alternativa al passaggio di questi valori come prop singole. | | `loadTranslations?` | Una funzione asincrona che accetta una stringa di impostazione regionale e restituisce l'oggetto delle traduzioni per quell'impostazione regionale. Usata per caricare file di traduzione pregenerati a Runtime. | | `loadDictionary?` | Una funzione asincrona che accetta una stringa di impostazione regionale e restituisce le traduzioni del dizionario per quell'impostazione regionale. | | `region?` | Il codice regionale dell'utente (ad esempio `US`, `GB`). Usato per la formattazione specifica per area geografica. | | `fallback?` | Contenuto di fallback personalizzato da mostrare durante il caricamento delle traduzioni. | | `customMapping?` | Una mappatura dei nomi di componenti personalizzati ai rispettivi componenti React, usata durante il rendering di JSX tradotto. | ### Restituisce `React.JSX.Element|undefined` contenente gli elementi figlio passati a questo componente. ## Esempi ### Utilizzo di base Racchiudi l'applicazione in `` per aggiungere la traduzione all'app. Non dimenticare di aggiungere un [elenco delle impostazioni regionali supportate](/docs/platform/supported-locales) per abilitare la traduzione. ```jsx title="App.tsx" copy import { GTProvider } from 'gt-react-native'; import gtConfig from './gt.config.json'; import { loadTranslations } from './loadTranslations'; export default function App() { return ( {/* // [!code highlight] */} {/* Il contenuto della tua app */} ); } ``` ### Dizionari Puoi anche passare un dizionario al componente `` e accedervi poi con l'hook [`useTranslations`](/docs/react-native/api/dictionary/use-translations). ```jsx title="App.tsx" copy import { GTProvider } from 'gt-react-native'; import gtConfig from './gt.config.json'; import { loadTranslations } from './loadTranslations'; import dictionary from './dictionary'; export default function App() { return ( {/* // [!code highlight] */} {/* Il contenuto della tua app */} ); } ``` Per maggiori informazioni sull'uso dei dizionari, consulta questa [guida](/docs/react-native/guides/dictionaries). ### Aggiungere la configurazione Se preferisci non passare le props direttamente al componente ``, puoi creare un file di configurazione e passarlo al componente. Inoltre, si integra direttamente con il [comando `gt translate`](/docs/cli/translate), quindi non devi specificare manualmente come parametro elementi come le impostazioni regionali. ```json title="gt.config.json" copy { "projectId": "your-project-id", "locales": ["es", "fr"], "defaultLocale": "en-US", "_versionId": "translation-version-id" // consente di ripristinare le traduzioni precedenti (generato automaticamente dalla CLI) } ``` Non devi fare altro che passarlo al componente ``. ```jsx title="App.tsx" copy import { GTProvider } from 'gt-react-native'; import config from './gt.config.json'; export default function App() { return ( {/* // [!code highlight] */} {/* Il contenuto della tua app */} ); } ``` ### Loader di traduzioni personalizzato Puoi usare la prop `loadTranslations` per caricare le traduzioni da una fonte personalizzata. È utile quando devi caricare le traduzioni da una fonte diversa, ad esempio da un'API personalizzata. ```jsx title="App.tsx" copy import { GTProvider } from 'gt-react-native'; import { loadTranslations } from './loadTranslations'; export default function App() { return ( {/* // [!code highlight] */} {/* Il contenuto della tua app */} ); } ``` ### Impostazioni di rendering Le impostazioni di rendering controllano il comportamento di caricamento delle traduzioni. Sono presenti due campi: `timeout` e `method`. * `timeout` è il numero di millisecondi da attendere prima che venga caricata una traduzione, oltre il quale viene mostrato un fallback (predefinito: `8000ms`). * `method` è il metodo da usare per caricare le traduzioni (`"skeleton"`, `"replace"` o `"default"`). ```jsx title="App.tsx" copy {/* Il contenuto della tua app */} ``` Ogni impostazione di rendering definisce un comportamento di caricamento diverso: `"skeleton"` restituisce `null` finché le traduzioni non sono state caricate. `"replace"` restituisce il contenuto di fallback finché le traduzioni non sono state caricate. `"default"` restituisce `null` finché le traduzioni non sono state caricate, a meno che l'impostazione regionale di fallback non abbia la stessa lingua dell'impostazione regionale corrente (ad esempio, `en-US` e `en-GB`). In questo caso, restituisce subito il contenuto di fallback finché le traduzioni non sono state caricate. *** ## Note * `` deve avvolgere tutti i [componenti ``](/docs/react-native/api/components/t) e le altre funzioni legate alla traduzione. Scopri di più [qui](/docs/react-native/api/components/gtprovider). ## Passaggi successivi * Scopri di più sul [componente ``](/docs/react-native/guides/t) per tradurre testo e componenti.