0Pricing
React Academy · Lezione

Utilizzo dell'hook useTranslation

Sostituisca le stringhe hardcoded con chiamate a t() e organizzi i file JSON delle traduzioni.

Utilizzo dell'hook useTranslation è una lezione React Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento React Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso React Academy include 4 lezioni in totale.

Benvenuto

In questa lezione utilizzerà l’hook useTranslation per accedere alla funzione t(), tradurre le stringhe nei componenti e organizzare i file JSON delle traduzioni per namespace.

L’hook useTranslation

Chiami useTranslation() all’interno di un componente per ottenere la funzione di traduzione `t` e l’istanza `i18n`. Passi il nome del namespace se utilizza traduzioni organizzate per namespace.
import { useTranslation } from 'react-i18next';

function Header() {
  const { t } = useTranslation('common');
  return <h1>{t('app_title')}</h1>;
}

Chiavi di traduzione di base

Crei un file JSON per ogni lingua e namespace. Le chiavi sono stringhe accessibili con la notazione a punti. Le chiavi piatte sono semplici; quelle annidate usano la notazione a punti.
// public/locales/en/common.json
{
  "app_title": "My App",
  "nav": {
    "home": "Home",
    "about": "About"
  }
}

Chiavi con notazione a punti

Acceda alle chiavi annidate con la notazione a punti nella funzione t(): `t('nav.home')` legge `nav -> home` dal JSON.
const { t } = useTranslation('common');
return <a href="/">{t('nav.home')}</a>;

Namespace predefinito

Configuri un `defaultNS` nell’inizializzazione di i18n, così potrà chiamare useTranslation() senza argomenti e le chiavi verranno risolte automaticamente nel namespace predefinito.
i18n.init({ defaultNS: 'common', ... });

// No namespace argument needed
const { t } = useTranslation();
t('app_title'); // resolves in 'common'

Accesso a più namespace

Passi un array a useTranslation per accedere a più namespace. Preceda le chiavi con il namespace seguito da due punti.
const { t } = useTranslation(['common', 'auth']);

t('common:app_title');
t('auth:login');

Componente Trans per contenuti JSX

Quando una stringa tradotta contiene HTML o componenti React, utilizzi il componente Trans. Supporta segnaposto associati a componenti React.
import { Trans } from 'react-i18next';

// JSON: "tos": "Read our <1>Terms</1>"
<Trans i18nKey="tos">
  Read our <a href="/terms">Terms</a>
</Trans>

Struttura dei file di traduzione

Organizzi i file JSON nel formato `public/locales/{lang}/{ns}.json`. Mantenga le chiavi semantiche e raggruppate per funzionalità. Eviti chiavi annidate troppo in profondità: di solito sono sufficienti 2 livelli.
public/
  locales/
    en/
      common.json
      auth.json
      dashboard.json
    tr/
      common.json
      auth.json

Cambio della lingua in fase di esecuzione

Utilizzi `i18n.changeLanguage(lng)` per cambiare programmaticamente la lingua attiva. I componenti React che usano useTranslation vengono renderizzati nuovamente automaticamente.
const { i18n } = useTranslation();

<button onClick={() => i18n.changeLanguage('tr')}>Turkish</button>

Rilevamento della lingua attiva

Legga `i18n.language` per ottenere la locale attiva corrente. Può usarla per visualizzare una bandiera o evidenziare il pulsante della lingua attiva.
const { i18n } = useTranslation();
return <p>Current lang: {i18n.language}</p>;

Verifica rapida

Come si accede alla chiave di traduzione annidata 'nav.home' dal namespace 'common'?

Riepilogo

useTranslation fornisce la funzione t(). Organizzi le chiavi nei file JSON dei namespace. Utilizzi la notazione a punti per le chiavi annidate. Cambi lingua con i18n.changeLanguage. Utilizzi il componente Trans per le stringhe che contengono JSX.

Prossimo

Prossima lezione: **Pluralizzazione e interpolazione** — gestirà le forme plurali basate sul conteggio e inserirà valori dinamici nelle stringhe tradotte.

Domande Frequenti

La lezione «Utilizzo dell'hook useTranslation» è gratuita?

Sì — il testo completo di «Utilizzo dell'hook useTranslation» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso React Academy, passa a CoddyKit PRO. Il corso React Academy include 4 lezioni in totale.

Cosa imparerò in «Utilizzo dell'hook useTranslation»?

Sostituisca le stringhe hardcoded con chiamate a t() e organizzi i file JSON delle traduzioni. Eserciti React Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare React Academy?

Non è richiesta alcuna esperienza precedente. React Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Utilizzo dell'hook useTranslation»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione React Academy?

Sì. Ogni lezione React Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Configurazione di react-i18next
  2. Utilizzo dell'hook useTranslation
  3. Pluralizzazione e interpolazione
  4. Selettore della lingua e lazy loading delle traduzioni
← Torna a React Academy