# General Translation React SDKs (gt-react, gt-next, gt-react-native): Tradurre con i dizionari
URL: https://generaltranslation.com/it/docs/react/guides/translating-with-dictionaries.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Come tradurre le stringhe usando un dizionario centrale con l'hook useTranslations di General Translation.

Un dizionario raccoglie le stringhe traducibili in un unico posto, identificate da `id`, invece di definirle inline nei componenti. È adatto ai team che preferiscono testi centralizzati o che stanno migrando da una libreria i18n basata su chiavi. Nella maggior parte delle app, puoi invece usare [`<T>`](/docs/react/guides/translating-jsx) e [`useGT`](/docs/react/guides/translating-strings).

## Fornisci un dizionario [#provide]

Il modo in cui registri i dizionari per ciascuna impostazione regionale dipende dal framework.

<Tabs items={['React', 'Next.js', 'TanStack Start', 'React Native']}>
  <Tab value="React">
    Passa i dizionari a [`GTProvider`](/docs/react/reference/components/gt-provider) tramite la prop [`dictionaries`](/docs/react/reference/components/gt-provider#dictionaries), insieme ai parametri richiesti [`locale`](/docs/react/reference/components/gt-provider#locale) e [`translations`](/docs/react/reference/components/gt-provider#translations).

    ```tsx
    <GTProvider locale={locale} translations={translations} dictionaries={dictionaries}>
      <App />
    </GTProvider>;
    ```
  </Tab>

  <Tab value="Next.js">
    In Next.js non devi passare i dizionari a [`GTProvider`](/docs/react/reference/components/gt-provider). Crea un file del dizionario nella radice del progetto e registralo con il plugin di configurazione, oppure lascia che venga rilevato automaticamente.

    ```json title="dictionary.json"
    {
      "home": { "title": "Welcome back" }
    }
    ```

    ```ts title="next.config.ts"
    import { withGTConfig } from 'gt-next/config';

    export default withGTConfig(nextConfig, { dictionary: './dictionary.json' });
    ```
  </Tab>

  <Tab value="TanStack Start">
    Passa i dizionari a [`GTProvider`](/docs/react/reference/components/gt-provider) tramite la prop [`dictionaries`](/docs/react/reference/components/gt-provider#dictionaries), insieme ai parametri richiesti [`locale`](/docs/react/reference/components/gt-provider#locale) e [`translations`](/docs/react/reference/components/gt-provider#translations).

    ```tsx
    <GTProvider locale={locale} translations={translations} dictionaries={dictionaries}>
      <App />
    </GTProvider>;
    ```
  </Tab>

  <Tab value="React Native">
    Passa i dizionari a [`GTProvider`](/docs/react/reference/components/gt-provider) tramite la prop [`dictionaries`](/docs/react/reference/components/gt-provider#dictionaries), insieme all&#39;[`locale`](/docs/react/reference/components/gt-provider#locale) attiva e alle [`translations`](/docs/react/reference/components/gt-provider#translations) se necessarie.

    ```tsx
    <GTProvider locale={locale} dictionaries={dictionaries}>
      <App />
    </GTProvider>;
    ```
  </Tab>
</Tabs>

## Cerca le voci con `useTranslations` [#use-translations]

Chiama [`useTranslations`](/docs/react/reference/hooks/use-translations) per ottenere una funzione di lookup, quindi passa l&#39;id di una voce. Interpola i valori con un oggetto options.

<Tabs items={['React', 'Next.js', 'TanStack Start', 'React Native']}>
  <Tab value="React">
    ```tsx
    import { useTranslations } from 'gt-react';

    function Greeting() {
      const t = useTranslations();
      return <h1>{t('home.title')}</h1>;
    }
    ```
  </Tab>

  <Tab value="Next.js">
    ```tsx title="Componenti sincroni"
    import { useTranslations } from 'gt-next';

    function Greeting() {
      const t = useTranslations();
      return <h1>{t('home.title')}</h1>;
    }
    ```

    ```tsx title="Componenti async di App Router"
    import { getTranslations } from 'gt-next/server';

    async function Greeting() {
      const t = await getTranslations();
      return <h1>{t('home.title')}</h1>;
    }
    ```
  </Tab>

  <Tab value="TanStack Start">
    ```tsx title="Componenti"
    import { useTranslations } from 'gt-tanstack-start';

    function Greeting() {
      const t = useTranslations();
      return <h1>{t('home.title')}</h1>;
    }
    ```

    ```ts title="Funzioni server"
    import { createServerFn } from '@tanstack/react-start';
    import { getTranslations } from 'gt-tanstack-start';

    export const loadGreeting = createServerFn({ method: 'GET' }).handler(
      async () => {
        const t = await getTranslations();
        return t('home.title');
      }
    );
    ```

    Registra [`gtMiddleware`](/docs/react/tanstack-start/reference/functions/gt-middleware) prima di usare l&#39;helper server.
  </Tab>

  <Tab value="React Native">
    ```tsx
    import { useTranslations } from 'gt-react-native';

    function Greeting() {
      const t = useTranslations();
      return <Text>{t('home.title')}</Text>;
    }
    ```
  </Tab>
</Tabs>

Passa [`rootId`](/docs/react/reference/hooks/use-translations#root-id) per limitare tutte le ricerche a un prefisso. Funziona allo stesso modo in tutti i framework (`getTranslations('home')` nel codice server di Next.js e TanStack Start):

```tsx
const t = useTranslations('home');
t('title'); // risolve home.title
```

*Nota: la ricerca di un id inesistente nel dizionario genera un errore, quindi mantieni sincronizzati gli id e le voci del dizionario.*

## Leggi oggetti annidati [#objects]

Usa `.obj(id)` per leggere un gruppo annidato di voci, ad esempio per iterare su un insieme di etichette.

```tsx
const t = useTranslations();
const labels = t.obj('nav.links');
```

## Next steps

- /docs/react/guides/translating-strings
- /docs/react/guides/translating-jsx
- /docs/react/guides/handling-plurals-and-branches
- /docs/react/guides/formatting-variables

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
