# react-native: Migrazione URL: https://generaltranslation.com/it/docs/react-native/guides/migration.mdx --- title: Migrazione description: Scopri come migrare un progetto a gt-react-native --- {/* GENERATO AUTOMATICAMENTE: non modificare direttamente. Modifica invece il modello in content/docs-templates/. */} ## Panoramica Questa guida illustra i passaggi necessari per migrare a `gt-react-native` un progetto che utilizza già una libreria i18n. Forniremo anche alcuni consigli e suggerimenti per rendere la migrazione il più semplice possibile. ## Prerequisiti * Un progetto che utilizza già un'altra libreria i18n. * Una conoscenza di base della libreria `gt-react-native`. ## Perché migrare? Ci sono molti motivi per cui potresti voler migrare il tuo progetto su `gt-react-native`. Eccone alcuni: * **Niente più file JSON:** Non dovrai più gestire le traduzioni nei file JSON. Tutti i contenuti restano inline nel codice, dove devono stare. * **Traduzioni automatiche:** Genera traduzioni di alta qualità, consapevoli del contesto, con il nostro strumento CLI. Non dovrai più aspettare le traduzioni. * **Sperimenta in dev:** Prova facilmente le traduzioni durante lo sviluppo grazie al ricaricamento a caldo delle traduzioni. ## Setup Installa `gt-react-native` e lo strumento CLI `gt`. ```bash npm i gt-react-native npm i gt ``` ```bash yarn add gt-react-native yarn add --dev gt ``` ```bash bun add gt-react-native bun add --dev gt ``` ```bash pnpm add gt-react-native pnpm add --save-dev gt ``` Crea un file `gt.config.json` nella directory radice del progetto contenente una proprietà `defaultLocale` e un array `locales`. ```json title="gt.config.json" copy { "defaultLocale": "en", "locales": ["en", "fr", "es"] } ``` Aggiungi il componente `` alla radice dell'app e passa l'oggetto `config` come props con lo spread. ```tsx import { GTProvider } from 'gt-react-native' import config from './gt.config.json' ``` Per istruzioni più dettagliate, consulta la guida di [quickstart del progetto](/docs/react-native). A questo punto hai 3 opzioni: 1. Migra completamente l'intero progetto a `gt-react-native` e rimuovi la vecchia libreria i18n. 2. Migra completamente il progetto, ma continua a usare i dizionari della vecchia libreria i18n. 3. Continua a usare per ora la vecchia libreria i18n e migra solo una parte del progetto a `gt-react-native`. Per maggiori dettagli su ciascuna opzione, consulta la sezione [strategie di migrazione](#strategies). ## Strategie di migrazione [#strategies] ### Opzione 1: Migra completamente l'intero progetto Questa opzione è la più semplice, ma richiederà anche il maggior numero di modifiche al codice tutte in una volta. Dopo aver configurato il progetto, dovrai cercare tutte le occorrenze della tua vecchia libreria i18n e sostituirle con `gt-react-native`. Se la tua app usa hook di React come `useTranslation`, cerca tutte le occorrenze di `useTranslation` nel codice e sostituiscile con `useGT`. Poi dovrai sostituire tutte le chiavi di stringa con i valori effettivi delle stringhe. Ad esempio, se il tuo vecchio codice è così: ```json title="dictionary.json" { "hello": { "description": "Hello, world!" } } ``` ```tsx export default function MyComponent() { const { t } = useTranslation() return
{t('hello.description')}
} ``` Dovrai sostituirlo con: ```tsx export default function MyComponent() { const { t } = useGT() return
{t('Hello, world!')}
} // OPPURE export default function MyComponent() { return Hello, world! } ``` Fallo per tutte le occorrenze della tua vecchia libreria i18n. ### Opzione 2: Migra completamente il progetto, ma continua a usare i dizionari della vecchia libreria i18n Supponiamo che tu voglia migrare il tuo progetto a `gt-react-native`, ma continuare a usare i dizionari della vecchia libreria i18n e utilizzare le funzionalità inline di GT solo per i nuovi contenuti. In questo caso, puoi fare qualcosa di simile all'Opzione 1: Trova tutte le occorrenze della vecchia libreria i18n, come gli hook `useTranslation`, e sostituiscile con gli hook `useTranslations`. L'hook `useTranslations` si comporta in modo molto simile agli hook `useTranslation` e puoi usarlo allo stesso modo. ```tsx import { useTranslation } from 'react-i18next' export default function MyComponent() { const { t } = useTranslation() return
{t('hello.description')}
} ```
```tsx import { useTranslations } from 'gt-react-native' export default function MyComponent() { const t = useTranslations() return
{t('hello.description')}
} ```
Per quanto riguarda la configurazione, dovrai creare un file `dictionary.[js|ts|json]` nella directory radice del progetto o nella directory `src`. Copia il contenuto del vecchio file di dizionario in questo nuovo file, quindi passalo al componente `GTProvider`. ```tsx import { GTProvider } from 'gt-react-native' import dictionary from './dictionary.json' import config from './gt.config.json' ``` Per maggiori dettagli, consulta la guida [dictionaries](/docs/react-native/guides/dictionaries). ### Opzione 3: continua a usare per ora la vecchia libreria i18n e migra solo una parte del progetto a `gt-react-native` Questa opzione è la più flessibile e richiede il minor numero di modifiche al codice tutte insieme. In questo caso, puoi fare qualcosa di simile all'opzione 2, ma migrare solo una parte del progetto a `gt-react-native`. Ad esempio, puoi continuare a usare la vecchia libreria i18n per alcuni componenti e usare `gt-react-native` solo per altri e per i nuovi contenuti. Questa opzione non è consigliata, perché dovrai gestire due librerie i18n diverse nello stesso progetto, il che può risultare complesso e portare a bug. ## Consigli per la migrazione ### 1. Usa l'hook `useGT` o il componente `` il più possibile Quando possibile, ti consigliamo di usare l'hook `useGT` o il componente ``. In questo modo, in futuro sarà molto più facile modificare i contenuti e il codebase risulterà molto più leggibile. ### 2. Usa l'hook `useTranslations` per i contenuti esistenti L'hook `useTranslations` è un ottimo modo per continuare a usare i dizionari esistenti. Lo mettiamo a disposizione per semplificare la migrazione, ma non ne consigliamo l'uso per i nuovi contenuti. ### 3. Uso dell'IA Se usi l'IA per aiutarti nella migrazione del tuo progetto, mettiamo a disposizione `LLMs.txt` e `LLMs-full.txt` ai seguenti indirizzi: * [LLMs.txt](/llms.txt) * [LLMs-full.txt](/llms-full.txt) Questi file contengono l'intero contenuto di questa documentazione, quindi il tuo strumento di IA avrà accesso a tutte le informazioni necessarie per aiutarti a migrare il tuo progetto.